Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1520to1524
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

Position von beliebigem Datum aus String suchen

Position von beliebigem Datum aus String suchen
03.11.2016 20:25:02
beliebigem
Hallo Excelfreunde,
ich möchte gern aus einer Zelle mit Text und einem beliebigen Datum die Stelle des Datums im Text finden - z. B aus "Heute ist der 03.11.2016, ein Donnerstag." Meine Idee war, das Ganze über die InStr-Funktion zu machen. Das Datumsformat soll wie folgt erkannt werden: dd.mm.yyyy
Als Platzhalter wollte ich die "?" verwenden. Das scheint aber nicht zu funktionieren. Ich bekomme leider nur 0 als Wert für i ausgegeben (s. Bsp.-Makro unten). Könnt ihr mir sagen, was ich ändern muss bzw. welcher Platzhalter für Instr funktioniert?
Ich verwende Excel 2016
Viele Grüße
Martin
Hier das Bsp.-Makro
Sub Test()
Dim i As Integer
i = InStr(1, Range("A1").Value, "?.?.?")
MsgBox i
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Position von beliebigem Datum aus String suchen
03.11.2016 20:33:16
beliebigem
Hallo,
das geht mit "RegEx" (regular expression) recht gut (pattern: "\d{2}\.\d{2}\.\d{4}", ersatzweise auch mit
like "[0-9][0-9].[0-9][0-9].[0-9][0-9][0-9][0-9]"
Falls du mit der Hilfefunktion nicht zurecht kommen solltest, melde dich noch einmal.
mfg
AW: Position von beliebigem Datum aus String suchen
04.11.2016 23:34:29
beliebigem
Hallo Fennek,
vielen Dank für deine schnelle Antwort. Mit dem Tipp bin ich fündig geworden und haber erstmal den unten stehenden Code zusammen gebastelt. Jetzt klappt es wunderbar, die Position vom Datum zu finden :)
Solltest du noch Anmerkungen dazu haben, kannst du sie mir gern noch mitteilen :)
Viele Grüße
Martin
Code sieht jetzt so aus:
Sub Test()
Dim objRegEx As Object, objMatch As Object
Dim strText As String
Dim intIndex As Integer
Dim i As Integer
strText = "Heute ist der 03.11.2016, ein Donnerstag."
Set objRegEx = CreateObject("vbscript.regexp")
With objRegEx
.Global = True
.IgnoreCase = True
.MultiLine = False
.Pattern = "\d{2}\.\d{2}\.\d{4}"
'"\d+"
Set objMatch = .Execute(strText)
End With
For intIndex = 0 To objMatch.Count - 1
Debug.Print objMatch(intIndex)
i = InStr(1, strText, objMatch(intIndex))
MsgBox i
Next
Set objRegEx = Nothing
Set objMatch = Nothing
End Sub

Anzeige
AW: Position von beliebigem Datum aus String suchen
03.11.2016 20:35:53
beliebigem
Hallo Martin,
mein Vorschlag sieht etwas anders aus:
Sub Vorschlag()
Dim strValue As String, i As Integer
strValue = Replace(Range("A1").Value, " ", "")
For i = 1 To Len(strValue)
If IsDate(Mid(strValue, i, 10)) Then
MsgBox Mid(strValue, i, 10)
Exit For
End If
Next
End Sub
Viele Grüße
Martin
AW: Position von beliebigem Datum aus String suchen
04.11.2016 23:40:42
beliebigem
Hi Martin,
das ist auch nochmal ein guter Ansatz, den ich sicherlich in einem anderen Makro verwenden werde. Für den aktuellen Fall war es aber nicht ganz das, was ich gesucht habe. Die Mid-Funktion würde mir ja das gesamte Datum wiedergeben und ich benötige aber die Position im Text. Trotzdem noch vielen Dank für die Anregung :)
Viele Grüße
Martin
Anzeige

71 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige