Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1344to1348
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datum Suchen

Datum Suchen
16.01.2014 12:06:38
Hanswurst
Servus,
wahrscheinlich ist mein Problem schon das ein oder andere Mal aufgetreten aber ich finde die Lösung dazu nicht.
Also meine Code ist der Folgende:
Private Sub CommandButton1_Click()
On Error Resume Next
Application.ScreenUpdating = False
Dim Datum1 As Double
Dim rng As Range
Dim rng1 As Range
Dim zeile1 As Long
Dim zeile2 As Long
Datum1 = CDate(Format$(TextBox1.Text, "dd.mm.yyyy hh:mm:ss"))
Worksheets("12-Sekunden").Select
Range("J2") = (Format$(TextBox1.Text, "dd.mm.yyyy hh:mm:ss"))
Range("J1") = Datum1
Datum1 = Round(Datum1, 4)
Set rng = Sheets("12-Sekunden").Columns("B:B").Find(what:=Datum1, LookAt:=xlWhole)
If rng Is Nothing Then
MsgBox TextBox1.Text & " nicht gefunden"
Unload Me
Else
zeile1 = rng.Row
End If
Debug.Print zeile1
Range("J3") = zeile

Was soll geschehen? Ich gebe in einer Textbox ein Datum ein, z.B. 09.11.2013 21:06:12, und es soll mir die Zeile ausgegeben werden. Als Zahlenwert wird 41857,8793 in Spalte B abgelegt und hier will ich jetzt mit Datum1 nach jener Zahl suchen. Finde tue ich allerdings nicht. Woran liegt es? Das ich vorher runde? Ist dies unzulässig oder sogar falsch?
Vielen Dank für jegliche Hilfe!

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum Suchen
16.01.2014 12:50:48
Klaus
Hallo [Realname],
ich spreche nur ungern Menschen mit "Hanswurst" an, da fühle ich mich unseriös.
mit FIND suchst du eine exakte Übereinstimmung. Grad bei Datums-Werten kann sich das mal in der x-ten Nachkommastelle unterscheiden.
Ich vermute, dass hier auch mit einem unscharfen Ansatz (zB worksheetfunction.match mit Bereich-Verweis = TRUE) gearbeitet werden kann. Aber eine kurze Mustertabelle würd da schon helfen, gerade weil du nur "Basiskenntnisse" hast.
Grüße,
Klaus M.vdT.

AW: Datum Suchen
16.01.2014 13:24:06
Hanswurst
Hallo,
hast Recht. Also du darfst mich mit Max ansprechen.
Ich habe die Datei mal angefügt.

Die Datei https://www.herber.de/bbs/user/88845.xlsm wurde aus Datenschutzgründen gelöscht


Aus dem String in Spalte A generiere ich mir selber das Datum über ein vorgeschaltetes Makro. Dieses ist nicht beigefügt.
Vielen Dank für die Hilfe

Anzeige
AW: Datum Suchen
16.01.2014 13:52:54
Klaus
Hallo Max,
schau dir das mal an.
https://www.herber.de/bbs/user/88846.xlsm
Anmerkung:
der 09.11.2013 21:05 wird NICHT gefunden, aber der 09.11.2013 21:05:48 da es dann exakt übereinstimmt. 21:06 wird ebenso gefunden wie 21:06:00, da es das gleiche ist.
Grüße,
Klaus M.vdT.

AW: Datum Suchen
16.01.2014 14:08:12
Hanswurst
Vielen Dank!
Immerhin findet er schon mal etwas. Nur:
Ich will wenn ich 09.11.2013 21:05:46 eingebe Zeile 2 ausgegeben bekommen.
Warum klappt das nur, wenn ich 09.11.2013 21:05:48 eingebe?

Anzeige
AW: Datum Suchen
16.01.2014 14:25:05
Klaus
Hallo Max,
In Zeile 2 steht aber nicht 09.11.2013 21:05:46, sondern etwas anderes. Da die Werte nicht übereinstimmen, werden sie nicht gefunden. Die suche ist scharf und sucht nach exaktem Vergleich! Wenn du ein Schokobrötchen willst und der Bäcker hat keine bringe ich dir stattdessen eine Schokowaffel mit - denn ich bin ein Mensch und verstehe deine Intention. Excel würde mit leeren Händen vom Bäcker zurückkommen und sagen "Schokobrötchen waren aus", auch wenn die ganze Auslage des Bäckers voll mit Kuchen lag.
Was du brauchst, ist eine unscharfe Suche die einen ähnlichen Wert findet - richtig? Das ist aber nicht so einfach aus dem Ärmel zu ziehen.
Was passiert wenn du :46 eingibst, es gibt :45 und :47 .. nach oben oder nach unten richtig?
Wenn nach unten: Was ist wenn du :46 eingibst, es gibt :01 und :47. Nach unten wäre :01, aber :47 wäre näher dran.
Und wenn du den 31.12.2099 23:59:59 eingibst, soll dann der 09.11.2013 21:06 als nächster Wert gefunden werden? Wenn nein, was ist die Grenze?
Ist die Liste immer sortiert oder kann sie auch unsortiert sein?
Mein Tipp: lass das VBA erstmal weg und lös das mit Formeln / Hilfsspalten. Dann kannst du mit sortierten Listen und der VERGLEICH Formel experimentieren (Bereich_Verweis auf WAHR liefert unscharfe Suchergebnisse, aber die müssen dir nicht passen ...)
Grüße,
Klaus M.vdT.

Anzeige
AW: Datum Suchen
20.01.2014 15:49:25
Max
Ich sehe das Problem,
ich habe mir jetzt etwas anderes überlegt, scheiter allerdings an der Implementierung
Und zwar habe ich 12-sekündige Daten, sprich 5 Daten pro Minute.
Ich lasse jetzt eine Userform öffnen in welcher ich erfrage wie viele Stunden in einem Diagramm dargestellt werden sollen. Bei einer Stunde wären das 5*60=300 Werte (z_12_2). Diese Variable habe ich als in Public als Double festgelegt.
Jetzt rufe ich ein anderes Modul auf und möchte die Ordinate variabel zeichnen lassen. Das schaut wie folgt aus bei mir:

Range("C1:G" & z_12_2).Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
ActiveChart.SetSourceData Source:=Range("12-Sekunden!$C$1:$G$" & z_12_2)
ActiveChart.Location Where:=2, Name:=ActiveSheet.Name
...

Also z_12_2 wird als solche als publik gespeichert nur kann ich diesen Wert nicht als untere Grenze festlegen. Muss ich diese als Range-Variable deklarieren?
Vielen Dank für die Hilfe!
Max

Anzeige
Topic?
21.01.2014 08:05:47
Klaus
Hallo Max,
ganz neue Frage, ganz neues Thema :-) mach doch lieber ein neues Thema auf, in dem du dann auch einen aussagefähigen Betreff wählst. Sonst sucht später jemand im Archiv nach "Datum suchen" und findet hier nur Charts!
Also z_12_2 wird als solche als publik gespeichert nur kann ich diesen Wert nicht als untere Grenze festlegen.
welche "untere Grenze"? Die der X-Achse deines Diagramms?
Muss ich diese als Range-Variable deklarieren?
Kommt drauf an was du damit machst, oder? Momentan wird da wohl eine Zahl drinnen stehen, sagen wir mal die 17. aus Range("12-Sekunden!$C$1:$G$" & z_12_2) wird also Range("12-Sekunden!$C$1:$G$17")
Wenn du da jetzt eine Range-Variable draus machst, musst du natürlich die ganze Syntax anders aufbauen. Ob das Sinn macht oder nicht kann dir keiner beantworten, der deine Datei nicht kennt ....
Alles weiter im neuen Thread!
Grüße,
Klaus M.vdT.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige