Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1828to1832
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

Zelle auslesen

Zelle auslesen
29.04.2021 23:33:39
Frank
Hallo an alle
ich habe ein kleines Problem.
ich will eine Zelle auslesen, die mehr als 80 Zeichen besitz
sieht in etwa so aus
"2275 Einträge gefunden (te: 12606 min; te22b: 222min; t11r: 92260 min; trb: 975 min)"
ich möchte aber gerne nur die Zeit nach "(te:" auslesen (also die erste Zeit in der Klammer)
die Zahl variiert zwischen 1 stellig und 6 stellig
ausgegeben soll in diesem Fall nur "12606"
ich möchte die Zeit auf einem neuen Tabellenblatt (Tabelle2)
kann mir jemand dabei helfen - mir ist es egal ob Formal oder VBA
danke an alle
Frank

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

Betreff
Datum
Anwender
Anzeige
AW: Zelle auslesen
30.04.2021 00:00:44
GerdL
Hallo Frank!

Sub Unit()
Dim strText As String
Range("A1") = "2275 Einträge gefunden (te: 12606 min; te22b: 222min; t11r: 92260 min; trb: 975 min"
strText = Range("A1").Value
Tabelle2.Cells(Tabelle2.Rows.Count, 1).End(xlUp).Offset(1, 0) = CDbl(Split(Split(strText, "te: ")(1), " ")(0))
End Sub
Gruß Gerd
AW: Zelle auslesen
30.04.2021 00:34:28
Frank
Hallo Gerd
vielen Dank
funktioniert super
Frank
AW: Zelle auslesen
30.04.2021 00:26:01
Yal
Hallo Frank,
2 Möglichkeiten:
_ Regular Expression oder
_ Split nach Leerzeichen und nächste Element nach "(te:"
Kannst dir ein von beide aussuchen. In beide Fälle kannst Du es als User Defined Function (in einem "Module" ablegen!)

'Mit Einbindung der Library "Microsoft VB-Script Regular expressions 5.5"
'In VB-Editor unter Extras, Verweise
Public Function Zeit_lesen(target) As String
Dim R As New RegExp
Dim E As Object
R.Pattern = "(\(te:\s)(\d{1,6})"
Set E = R.Execute(target)
If E.Count  0 Then Zeit_lesen = E.Item(0).SubMatches.Item(1)
End Function
Function NachTe_lesen(target) As String
Dim E
Dim Jetzt As Boolean
For Each E In Split(target, " ")
If Jetzt Then
NachTe_lesen = E
Exit Function
End If
Jetzt = E = "(te:"
Next
End Function
Sub test()
Debug.Print Zeit_lesen("2275 Einträge gefunden (te: 12606 min; te22b: 222min; t11r: 92260 min; trb: 975 min)")
Debug.Print NachTe_lesen("2275 Einträge gefunden (te: 12606 min; te22b: 222min; t11r: 92260 min; trb: 975 min)")
End Sub
VG
Yal
Anzeige
AW: Zelle auslesen
30.04.2021 00:35:34
Yal
Hallo Frank,
nach genaue Beobachtung der Lösung von Gerd stelle ich fest, dass der Leerzeichen nach dem 12606

"2275 Einträge gefunden (te: 12606 min; te22b: 222min; t11r: 92260 min; trb: 975 min)"
wahrscheinlich nur zur Stande kommt, weil der Zahl nur 5-stellig und nicht 6. Wäre er 6-stellig, gäbe es vielleicht die Leerstelle nicht (oder?)
Das trifft auch auf dem t11r, das 6-stellig sein darf. te22b darf wahrscheinlich nur 3-stellig sein und trb darf 4-stellig sein.
Dementsprechend ist die RexEg-Lösung zu bevorzugen. Sie wird auch funktionieren wenn nach dem te-Zahl keine Leerstelle vorhanden ist.
VG
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige