Registriert seit: 12.04.2016
Version(en): 365Pro Plus
(13.04.2016, 18:08)atilla schrieb: Hallo,
ich habe da mal etwas vorbereitet :19:
Uh, wow. Das sieht nicht übel aus. Ich werde mir mal das Makro genauer ansehen um dahinter zu steigen. Kurze Frage. Was genau ist der Vorteil des Tabellenmodus hier?
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi,
(14.04.2016, 23:39)JohnCamus schrieb: Kurze Frage. Was genau ist der Vorteil des Tabellenmodus hier?
- daß die Formeln bei Verlängerung der Tabelle automatisch fortgeschrieben werden
- daß bei Angabe der Tabelle als Datenbereich für die Pivot, die Pivot automatisch auf eine verlängerte Tabelle Bezug nimmt.
Registriert seit: 12.04.2016
Version(en): 365Pro Plus
17.04.2016, 13:18
Hi,
@Rabe
Ich hätte nochmal ein paar Fragen zum Makro. Da kenne ich mich (noch) überhaupt nicht aus. Du würdest mir ungemein helfen, wenn du ein paar Kommentare zu deinem Code machen könntest. Ich verstehe schon was "if then " statements machen. Was genau codes wie:
Code:
Target.Address
Target.Text
Application.EnableEvents = False
bedeuten verstehe ich jedoch nicht.
Worauf genau verweisen die Werte in den Klammern?
Beispielsweise:
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
17.04.2016, 14:49
(Dieser Beitrag wurde zuletzt bearbeitet: 17.04.2016, 14:55 von WillWissen.
Bearbeitungsgrund: Tippfehlerbereinigung
)
Hi John,
mit ganz wenig Englischkenntnissen müsstest du es doch fast selber herausbekommen:
Code:
Target.Address = Zieladresse
Target.Text = Text in der Zieladresse
Application.EnableEvents = False = schaltet Ereignisse in der Anwendung ab (Anwendung.ErmöglichenEreignisse = Falsch)
Andere Schreibweise für die Zelle A9 = Zelle(Zeile 9, Spalte 1)
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:1 Nutzer sagt Danke an WillWissen für diesen Beitrag 28
• Rabe
Registriert seit: 10.04.2014
Version(en): 2016 + 365
19.04.2016, 12:22
(Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2016, 12:23 von Rabe.)
Hi,
(17.04.2016, 13:18)JohnCamus schrieb: Du würdest mir ungemein helfen, wenn du ein paar Kommentare zu deinem Code machen könntest. Ich verstehe schon was "if then " statements machen.
Der Code ist von atilla, aber ich denke, mit den von Günter geschriebenen Erläuterungen müßtest Du ihn jetzt verstehen.
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngZ As Long 'Dimensionierung der Variable Z als LONG-Wert, Z ist die Zeilennnummer, Long ist -2.147.483.648 bis 2.147.483.647
If Target.Address(0, 0) = "C2" Then 'Schleifenbeginn: wenn die angeklickte/beschriebene Zelle C2 ist
If Cells(2, 2) <> "" Then 'Schleifenbeginn: wenn Zelle B2 nicht leer ist
If Target.Text <> "" Then 'Schleifenbeginn: wenn der eingegebene Text nicht leer ist
If IsNumeric(Target) Then 'Schleifenbeginn: wenn der eingegebene Text eine Zahl ist
lngZ = Cells(Rows.Count, 1).End(xlUp).Row + 1 'stelle die erste freie Zeile in Spalte A fest
Application.EnableEvents = False 'schalte die ständige Bildschirmaktualisierung aus
'füge in Zeile 9 eine neue Zeile ein mit den Formatierungen und Formeln der Zeile darunter
Range("A9").EntireRow.Insert , CopyOrigin:=xlFormatFromRightOrBelow
'kopiere die Inhalte von Bereich A2 bis G2 nach Zeile 9 => Cells(9, 1) bedeutet Zelle A9
Range(Cells(9, 1), Cells(9, 7)).Value = Range(Cells(2, 1), Cells(2, 7)).Value '
'lösche den Inhalt von B2 bis C2
Range(Cells(2, 2), Cells(2, 3)).ClearContents
Application.EnableEvents = True 'schalte die ständige Bildschirmaktualisierung wieder ein
End If 'Schleifenende: wenn der eingegebene Text eine Zahl ist
End If 'Schleifenende: wenn der eingegebene Text nicht leer ist
End If 'Schleifenende: wenn Zelle B2 nicht leer ist
End If 'Schleifenende: wenn die angeklickte/beschriebene Zelle C2 ist
End Sub