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

Zeit aus Text "extrahieren"

Zeit aus Text "extrahieren"
28.08.2015 14:41:58
Fabian
Halli hallo :-)
Ich stehe aktuell vor folgendem Problem:
Ich habe eine Spalte mit viel Text in jeder Zelle. In jeder dieser Zellen findet sich irgendwo eine Zeitdauer im Format hh:mm:ss. Ich möchte nun daneben eine neue Spalte erstellen, in der nur die Zeiten stehen, die in der anderen Spalte im Text untergehen.
Da wird es doch bestimmt einen Befehl à la Find.Date oder Find.Time o.Ä. geben, um die Zeit zu finden und sie anschließend in einer anderen Zelle einzeln zu speichern.
Wichtig:
- Höchstens eine Zeit pro Zelle
- Nicht in jeder Zeile sind Zeiten
- Ich suche keinen Befehl, der auf der Annahme basiert, dass die Zeit immer an der gleichen Stelle in der Zelle auftaucht.
Ich hoffe, ihr könnt mir helfen.
Viele Liebe Grüße
Fabian

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: sollte realisiert werden können ...
28.08.2015 14:47:12
...
Hallo Fabian,
... aber stelle doch mal ein paar Beispieltextdaten hier ein. Sind noch andere Zahlenwerte oder gar Datums- bzw. Zeitwerte im Text?
Gruß Werner
.. , - ...

AW: Zeit aus Text "extrahieren"
28.08.2015 19:02:36
Sepp
Hallo Fabian,
so?
Tabelle1

 ABC
1Das ist ein Text mit Zeit 13:47:15 und weiterer Text! 13:47:15
2Das ist ein Text ohne Zeit  
314:08:00 Zeit am Anfag 14:08:00
4Zeit am Ende 17:00:15 17:00:15

Formeln der Tabelle
ZelleFormel
C1=WENNFEHLER(TEIL(A1;SUCHEN("?:?:?";A1); 8)*1;"")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Sepp

Anzeige
AW: Zeit aus Text "extrahieren"
31.08.2015 11:54:41
Fabian
Ja, genau so etwas suche ich!
Allerdings hatte ich nicht geschrieben, dass ich es für die VBA-Programmierung suche. Ist es möglich, das dort mit ein paar Zeilen zu realisieren?
Liebe Grüße
Fabian

AW: Zeit aus Text "extrahieren"
31.08.2015 20:16:54
Sepp
Hallo Fabian,
ist mir zwar schleierhaft, warum du VBA bevorzugst, aber bitte.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub ReadTimeFromString()
Dim vntInput As Variant, vntOutput() As Variant, vntItem As Variant
Dim lngI As Long

vntInput = Range("A1:A4") 'Eingabebereich

Redim vntOutput(1 To UBound(vntInput))

For Each vntItem In vntInput
  lngI = lngI + 1
  vntOutput(lngI) = extractTime(CStr(vntItem))
Next

'Ausgabe
Range("B1").Resize(UBound(vntOutput, 1)) = Application.Transpose(vntOutput)
End Sub


Private Function extractTime(Text As String) As Variant
Dim objREGEX As Object, objMatch As Object

On Error GoTo ErrExit

Set objREGEX = CreateObject("VBScript.RegExp")
With objREGEX
  .MultiLine = True
  .Global = True
  .IgnoreCase = True
  .Pattern = "(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))"
  Set objMatch = .Execute(Text)
End With

If objMatch.Count > 0 Then extractTime = CDate(objMatch.Item(0).Value)

Exit Function

ErrExit:
extractTime = ""
End Function


Gruß Sepp

Anzeige
AW: Zeit aus Text "extrahieren"
02.09.2015 08:52:42
Fabian
Hallo,
ich empfinde VBA als flexibler, außerdem soll das ganze ein großes Programm werden, das ist nur ein Teil davon.
Danke für den Code. Schade, dass er weitestgehend unkommentiert ist, ich kenne die Hälfte der Befehle nicht.
Ich habe jetzt noch den Find-Befehl gefunden, der ja so gesehen tut, was ich will. Kann man nicht mit Find(?:?:?) nach einer Zeit suchen und diese extrahieren? Wie kann ich den Rückgabewert der Find-Funktion weiter verwenden?

AW: Zeit aus Text "extrahieren"
02.09.2015 19:52:49
Sepp
Hallo Fabian,
und was passt an meinem Code nicht?
Viel ist nicht zu kommentieren, der Bereich mit den Texten wird in ein Array eingelesen und mit der Funktion "extractTime()" mit Hilfe von Regular Expressions der enthaltene Zeitwert ausgelesen. Dieser wird in ein Ausgabe-Array geschrieben und schließlich in die Tabelle zurückgeschrieben.
Mit .Find findest du evtl. die entsprechende Zeile die einen Zeitwert enthält, aber den Zeitwert selbst kannst du damit nicht auslesen.
Gruß Sepp

Anzeige
AW: Zeit aus Text "extrahieren"
03.09.2015 14:23:02
Fabian
Hallo,
wenn ich deinen Code ausführe, passiert einfach nichts ^^ Ich hab auch schon die entsprechenden Stellen angepasst, aber ohne Ergebnis. Hatte auch zu Beginn gehofft, dass es einen (oder mehrere wenige) Befehl(e) gibt, der/die mir mein Ergebnis liefert/liefern.
Das mit dem Find-Befehl habe ich dann auch herausgefunden, habe mich jetzt für den Mid-Befehl entschieden. Der funktioniert zwar nur, wenn die Zeit immer an der gleichen Stelle steht (was bei mir der Fall ist), liefert mir aber leider keine allgemeingültige Lösung.
Dennoch danke für die Hilfe!
Viele Grüße
Fabian

Anzeige
AW: Zeit aus Text "extrahieren"
03.09.2015 18:29:00
Sepp
Hallo Fabian,
wenn bei dir nichts passiert, dann wird es wohl an falschen Angaben deinerseits liegen.
Dass das Datum immer an der selben Stelle steht, hast du in deinem Eingangspost dezidiert ausgeschlossen.
Lade doch eine Beispieldatei hoch.
Gruß Sepp

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige