Registriert seit: 16.10.2020
Version(en): 2016
17.06.2022, 21:00
(Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2022, 21:03 von Björn.412.)
Hallo Uwe,
danke für Deine Antwort, aber die funktioniert leider nicht.
Es kommt der Fehler: Fehler beim Kompilieren. Unzulässiger oder nicht definierter Verweis.
Im Code bleibt er beim ersten ".Cells..... stehen".
Und selbst wenn ich dei beiden Zeilen ":Cells ... " als Text markiere, passiert nichts, auch keine MsgBox.
Hast Du noch eine andere Lösung?
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Björn,
(17.06.2022, 21:00)Björn.412 schrieb: Im Code bleibt er beim ersten ".Cells..... stehen".
lösche jeweils den Punkt vor dem Cells.
Gruß Uwe
Registriert seit: 16.10.2020
Version(en): 2016
Hallo Uwe,
mal wieder danke für Deine schnelle Antwort.
Die Daten aus der Userform werden jetzt in die richtigen Spalten übernommen, nur vier Zeilen zu hoch.
Also das zu suchende Datum "01.01.2022" steht in der 5. Zeile und das Makro schreibt die Daten für den "01.01.2022" in die Zeile 1.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Björn,
schwierige Sache.
Aber vielleicht könnte man es z.B. so korrigieren:
Cells(varRow + 4, ...Gruß Uwe
Registriert seit: 16.10.2020
Version(en): 2016
Moin Uwe,
das kenne ich auch und funktioniert auch, aber nicht das eigentliche Ziel.
Es muss ja einen Grund geben, warum er vier Zeilen höher schreibt.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
(17.06.2022, 22:58)Björn.412 schrieb: Es muss ja einen Grund geben, warum er vier Zeilen höher schreibt.
Gibt es : Die Suche beginnt bei Zeile 5, also mit einem Versatz von 4 Zeilen.
Registriert seit: 16.10.2020
Version(en): 2016
18.06.2022, 08:45
(Dieser Beitrag wurde zuletzt bearbeitet: 18.06.2022, 08:47 von Björn.412.)
Moin Uwe,
ok!
Mir war nicht klar, dass wenn man ab einer bestimmten Zelle sucht "Range(Cells(5, 3), es mit im weiteren mit ", Cells(Rows.Count, 3)), 0)" zu einem Zeilenversatz führt.
Danke für Deine Hilfe.
Der funktionierende Code:
Private Sub CommandButton1_Click()
Dim varRow As Variant
If IsDate(TextBox1) Then
varRow = Application.Match(CLng(CDate(TextBox1.Value)), Range(Cells(5, 3), Cells(Rows.Count, 3)), 0)
If IsNumeric(varRow) Then
Cells(varRow + 4, 5).Value = TextBox2.Value
Cells(varRow + 4, 6).Value = TextBox3.Value
Else
MsgBox "Datum nicht gefunden!"
End If
Else
MsgBox "Kein Datum in der TextBox!"
End If
End Sub
Registriert seit: 12.06.2020
Version(en): 2024, 365business
(18.06.2022, 08:45)Björn.412 schrieb: wenn man ab einer bestimmten Zelle sucht ...
Naja, so allgemein kann man das nicht sagen. Es lieg an der Suchmethode.
match sucht innerhalb des gegebenen Bereiches und liefert dort die Zeilennummer in diesem Bereich. Ist der Bereich nicht Deckungsgleich mit dem Tabellenblatt , also 1. Zeile Suchbereich ist nicht Zeile 1 des Blattes, muß ein rechnerischer Ausgleich geschaffen werden um auf die Zelladresse des Blattes zu kommen.
Arbeitest du nur in dem Bereich und referenzierst deine Bezüge entsprechend, wird kein Ausgleich benötigt.