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
 
		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)
	
 
	![[-]](https://www.clever-excel-forum.de/images/collapse.png) Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:1 Nutzer sagt Danke an WillWissen für diesen Beitrag 28
	  • Rabe
 
	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