Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datum suchen, Zeilennummer ausgeben

Datum suchen, Zeilennummer ausgeben
02.06.2018 20:56:38
Andy
Hallo ...
ich habe einen Datensatz aus einer .csv gebildet. In der ersten Spalte ist Datum und Uhrzeit gelistet (27.04.2018 02:40:00). Die Spalte habe ich als Datum formatiert (Selection.NumberFormat = "dd/mm/yyyy hh:mm:ss").
Die Datumsspalte nutze ich im Weiteren als Quelle für eine Combobox "StartDate".
Ich benötige bei einer folgenden Operation die Zeilennummer zu dem ausgewählten Datum der Combobox "StartDate".
Folgender Code funktioniert nur mit dem im Code definierten testdatum (Code Zeile 9). Wenn ich das datum aus der Combobox  datum = frmDiagram.StartDate beziehe wird nichts gefunden. Obwohl es ja da sein muss. Da es ja die Basis für die Combobox ist. Ich kann mir denken, dass es mit der Datumsformatierung zusammenhängt. Leider finde ich keine Lösung und benötige Hilfe. Vielen Dank und Grüße Andy
Sub Marko1()
'datum in salte suchen und Zeilennummer ausgeben
Dim datum As Date
Dim rng As Range
Dim asd As Long
datum = frmDiagram.StartDate
'datum = Format(CDate(datum), "dd.mm.yyyy hh:mm:ss")
'datum = "02.05.2018 00:40:00"  ‘testdatum
MsgBox datum
Set rng = Worksheets("wrk").Range("A1:A300").Find(datum)
If rng Is Nothing Then
MsgBox " nicht gefunden in Zeile:"
Else
asd = rng.row
MsgBox asd
End If
End Sub

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum suchen, Zeilennummer ausgeben
02.06.2018 21:22:10
Günther
Moin Andy,
statt

datum = frmDiagram.StartDate
'datum = Format(CDate(datum), "dd.mm.yyyy hh:mm:ss")

versuche einfach den goldenen Mittelweg:
datum = Cdate(frmDiagram.StartDate)

dann hast du ein echtes Datum als Resultat und keinen Text. Die Format()-Funktion erzeugt nämlich auch Text.
Anzeige
AW: Datum suchen, Zeilennummer ausgeben
02.06.2018 22:17:46
Andy
Hallo Günther,
Vielen Danke. Funktioniert nicht. Gibt es noch andere Ansätze. Kann zum Beispiel die Combobox das Format verändern. Im Endeffekt vergleiche ich ja ein Wert aus seiner eigenen Quelle. Den Wert wähle ich halt über eine Combobox aus.
Grüße Andy
AW: Datum suchen, Zeilennummer ausgeben
02.06.2018 22:27:15
Günther
Moin Andy,
ohne Muster-xlsX (nicht xlsM, die lade ich nicht aus dem Netz) aber mit exportiertem Code (geht im Explorer) wird einigen von uns die Hilfe schwer fallen; andere laden aber auch Makro-behaftete Files herunter... (no risc, no fun). Ich kann mir gut vorstellen, dass die Fließkomma-Problematik wie so oft in solchen Fällen eine Tolle spielt. Wahrscheinlich wird es mit einer Hilfsspalte im Tabellenblatt gehen, wo du die Datum&Zeit - Spalte als Text formatierst und dann direkt mit der Auswahl der Combobox vergleichst.
Anzeige
AW: Datum suchen, Zeilennummer ausgeben
02.06.2018 23:21:13
Günther
OK Andy, ich bin ein Stück weiter.
Ich habe die wrk-Daten erst einmal als Tabelle formatiert.
Dann in general time per Hand den Filter mit deiner Muster-Zeit gesetzt. -> kein Ergebnis.
Hilfsspalte mit =Text(A2;;"TT.MM.JJJJ HH:mm" angelegt, also ohne Sekunden
Dort die Suche wiederholt, allerdings als Text-Eingabe.
Klappt!
Das deutet alles darauf hin, dass es sich um die Fließkomma-Problematik (https://de.wikipedia.org/wiki/Gleitkommazahl und weitere Stellen) handelt. Ich hatte noch einen Versuch mit Power Query gemacht und festgestellt, dass es damit klappt. Da bietet es sich an, eine SQL-Abfrage zu generieren, die könnte zum Erfolg führen. Du könntest aber auch versuchen, Datum und Zeit zu trennen und in getrennten Comboboxes abzufragen. Vielleicht bringt auch das etwas ...
Good luck!
Gruß Günther
Anzeige
AW: Datum suchen, Zeilennummer ausgeben
03.06.2018 06:44:58
Andy
Hallo Günther,
vielen Dank für Deine Hinweise. Muss jetzt erstmal schauen wie ich die implementieren kann.
Fazit: arbeiten mit Datum und Uhrzeit sind schwierig.
Gruß
Andy
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datum suchen und Zeilennummer in Excel ausgeben


Schritt-für-Schritt-Anleitung

  1. Daten formatieren: Stelle sicher, dass deine Datumsspalte korrekt als Datum formatiert ist. Du kannst dies in Excel tun, indem du die Spalte auswählst und das Format auf "dd/mm/yyyy hh:mm:ss" änderst.

  2. Combobox erstellen: Füge eine Combobox in dein Excel-Formular ein und verknüpfe sie mit der Datumsspalte. Dadurch kannst du die verfügbaren Daten auswählen.

  3. VBA-Code einfügen: Nutze den folgenden VBA-Code, um den Wert aus der Combobox zu nehmen und die Zeilennummer des entsprechenden Datums zu finden:

    Sub Marko1()
       Dim datum As Date
       Dim rng As Range
       Dim asd As Long
       datum = CDate(frmDiagram.StartDate) ' Kombiniere mit CDate für echtes Datum
       Set rng = Worksheets("wrk").Range("A1:A300").Find(datum)
       If rng Is Nothing Then
           MsgBox "Datum nicht gefunden."
       Else
           asd = rng.Row
           MsgBox "Zeilennummer: " & asd
       End If
    End Sub
  4. Testen: Führe das Makro aus, indem du auf einen Button klickst oder das Makro manuell startest. Überprüfe, ob die richtige Zeilennummer angezeigt wird.


Häufige Fehler und Lösungen

  • Fließkomma-Problematik: Oft kann das Datum in der Combobox als Text interpretiert werden. Verwende CDate, um sicherzustellen, dass es als Datum behandelt wird.

  • Formatierung: Wenn das Datum nicht gefunden wird, könnte das an einem Formatierungsproblem liegen. Achte darauf, dass die Formatierung in der Tabelle mit der der Combobox übereinstimmt.

  • Hilfsspalte: Wenn das direkte Suchen nicht funktioniert, erstelle eine Hilfsspalte mit dem TEXT-Befehl, um das Datum in ein einheitliches Textformat zu bringen.


Alternative Methoden

  • Power Query: Du kannst auch Power Query verwenden, um die Daten zu filtern und zu transformieren. Dies kann helfen, die Fließkomma-Problematik zu umgehen.

  • SQL-Abfrage: Wenn du mit größeren Datenmengen arbeitest, könnte eine SQL-Abfrage in Verbindung mit VBA hilfreich sein, um gezielt nach einem Datum zu suchen.

  • Trennung von Datum und Uhrzeit: Eine weitere Möglichkeit besteht darin, Datum und Uhrzeit in separaten Comboboxen abzufragen, um die Suche zu erleichtern.


Praktische Beispiele

  • Beispiel 1: Angenommen, du hast die Daten in A1:A300. Wenn du in der Combobox "02.05.2018 00:40:00" auswählst, sollte der Code die Zeilennummer der Zeile mit diesem Datum ausgeben.

  • Beispiel 2: Verwende eine Hilfsspalte mit der Formel =TEXT(A2;"TT.MM.JJJJ HH:mm"), um sicherzustellen, dass die Daten in einem einheitlichen Format vorliegen. Dies kann die Suche erheblich erleichtern.


Tipps für Profis

  • Debugging: Verwende Debug.Print in deinem VBA-Code, um den Wert von Variablen während der Ausführung zu überprüfen. Dies hilft bei der Fehlersuche.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem VBA-Code, um unerwartete Probleme elegant zu lösen.

  • Datenbankanbindung: Wenn du regelmäßig mit großen Datenmengen arbeitest, erwäge, eine Anbindung an eine Datenbank zu erstellen, um die Suche und Verarbeitung zu optimieren.


FAQ: Häufige Fragen

1. Warum finde ich mein Datum nicht, obwohl es in der Tabelle vorhanden ist?
Möglicherweise liegt es an einem Formatierungsproblem. Überprüfe, ob sowohl die Combobox als auch die Datenspalte im gleichen Datumsformat vorliegen.

2. Kann ich die Zeilennummer auch ohne VBA ausgeben?
Ja, du kannst die Formel =VERGLEICH(Datum;A1:A300;0) verwenden, um die Zeilennummer direkt in einer Zelle zu ermitteln, wenn du die Datumsangabe manuell eingibst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige