AW: Warum funktioniert das Makro nicht
07.11.2022 18:56:28
Yal
Hallo Frank,
ziemlich viele "Ungenauigkeit" in deinem Code. In "CommandButton1_Click" steht einem
For Each Cell In Range("bed:bd51")
was sicher nicht richtig ist. Im Vergleich steht in "CommandButton2_Click"
For Each Cell In Range("be2:be51")
also nehme ich an dass es "bd2:.." sein sollte.
Da der Code innerhalb des Objekts "frmKontoführung", brauchst Du keinen "With frmKontoführung". Alles was nicht spezifiziert wird, bezieht sich auf frmKontoführung. Wie zum Beispiel alle deine
TextBox2 = ...
Funktioniert ohne frmKontoführung.
Achte auf ein sauberes Einrücken deines Codings. Es ist das A&O, um ein lesbaren Code zu haben und -dumme- Fehler sofort zu erkennen. Leere Zeilen helfen an der Stelle gar nicht, machen sogar das Lesen schwerer.
Wenn Du einen Text mit CDate konvertiert, musst Du sicherstellen, dass auf die andere Seite des vergleichs auch ein Datum vorhanden ist.
"Exit Sub" ist der Notausstieg-Hammer. Es wird meistens in sehr kurze Subs mit nur ein einzige, simple Aufgabe verwendet. Bei "Kaum VBA-Kenntnisse", vermeiden: es steigt aus, und Du weisst nicht warum.
Wenn es etwas wie eine "Quelle" und ein "Ziel", dann schlage ich vor, die Variable dementsprechend zu nennen (Geschmacksache).
Ohne Header muss man ab Zeile 13 starten und dein Code könnte so aussehen:
Private Sub CommandButton28_Click()
Dim QuellDat As Variant
Dim ZielDat() As Variant
Dim QuellNr As Long
Dim ZielNr As Long
With Worksheets("Kontoführung")
QuellDat = .Range(.Cells(13, 100), .Cells(.Rows.Count, 112).End(xlUp)).Value
End With
For QuellNr = LBound(QuellDat) To UBound(QuellDat)
If IsDate(QuellDat(QuellNr, 1)) Then
If CDate(QuellDat(QuellNr, 1))
VG
Yal