Werteingabe eines Feldes Tag für Tag in einer neuen Zeile speichern
#11
(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?
Top
#12
Hi,

(14.04.2016, 23:39)JohnCamus schrieb: Kurze Frage. Was genau ist der Vorteil des Tabellenmodus hier?

  1. daß die Formeln bei Verlängerung der Tabelle automatisch fortgeschrieben werden
  2. daß bei Angabe der Tabelle als Datenbereich für die Pivot, die Pivot automatisch auf eine verlängerte Tabelle Bezug nimmt.
Top
#13
Thumbs Up 
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:
Code:
Cells(9, 1)
Top
#14
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)

Code:
Cells(9, 1)

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:
  • Rabe
Top
#15
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
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste