Clever-Excel-Forum

Normale Version: Datum aus einer Userform in einer Tabelle finden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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?
Hallo Björn,

(17.06.2022, 20:00)Björn.412 schrieb: [ -> ]Im Code bleibt er beim ersten ".Cells..... stehen".

lösche jeweils den Punkt vor dem Cells.

Gruß Uwe
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.
Hallo Björn,

schwierige Sache.  20

Aber vielleicht könnte man es z.B. so korrigieren:  Wink

Cells(varRow + 4, ...

Gruß Uwe
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.
(17.06.2022, 21: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.
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
(18.06.2022, 07: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.
Seiten: 1 2