Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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

(14.04.2016, 22: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.
Antworten 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)
Antworten 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
Antworten Top
#15
Hi,

(17.04.2016, 12: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
Antworten Top


Gehe zu:


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