Zelleninhalt umformatieren
#1
Hallo zusammen,

ich stehe vor dem Problem, dass ich einen automatischen Wert geliefert bekomme, welche jedoch als Text definiert ist.
Anhand des Wertes "3m25s" sollte auch ersichtlich sein, warum es keine Zahl ist.

Hierbei können die Werte unterschiedlich ausfallen.
Heute könnte es "3m25s" sein, morgen schon "10m13s" und in einer Woche "1h30m4s"

Was ich suche, ist eine Möglichkeit, diesen Wert, als Zeitwert darzustellen.

Bsp.: 00:03:25

Leider trete ich etwas auf der Stelle rum und weiß auch nach einigen Stunden nicht, wie ich es Sinnvoll umformatieren soll.

Da sich der Wert auch nicht auf mehrere Zellen erstreckt und aufgrund der Übersichtlichkeit auch nicht soll, macht es mir das ganze deutlich schwerer.

Hat jemand eine Idee, wie ich das umsetzen kann?

Einfaches umformatieren, hat wie erwartet nicht funktioniert.
Auch habe ich überlegt, die einzelnen Zeichen zu teilen und über eine WENN/DANN Anweisung zu berechnen, so das ich z.B. 3*60+25 rechne und diesen dann als Zeitwert umformatiere.
Allerdings hänge ich auch hier fest, weil es einfach nicht funktioniert.
Das Umändern von "m" in einen ":" und löschen des "s" wäre zwar auch eine Möglichkeit, behindert mich aber spätestens dann wieder, wenn sich die Stellen verändern, da ich mit Ersetzen nur eine Position ansprechen kann.

Vielen Dank schonmal für die Vorschläge =)
Top
#2
Hallo,

suchen nach m, ersetzen durch : suchen nach s ersetzen durch nichts sollte doch gehen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#3
Hallo Freakazoid,

das Ersetzten wie von Klaus-Dieter vorgeschlagen geht, sofern jeweils h-m-s vorhanden sind. Was aber, wenn es gemischt vorkommt: 4h2s, 4m2s, etc., dann passt es nicht mehr.
Aber mit einer VBA-Fkt. kann man fast alles erschlagen. (s. Mappe)

Gruß
Sigi


Angehängte Dateien
.xlsm   Txt2Zeit.xlsm (Größe: 17,96 KB / Downloads: 2)
Top
#4
Hallo Klaus-Dieter,

das würde funktionieren, wenn ich einfach eine Datei hätte und die Daten abändern würde.
Was ich wohl vergessen habe zu erwähnen ist, dass es eine Date ist, bei der die Daten täglich aktualisiert und erweitert werden.
Somit habe ich nicht die Zeit, jeden Tag manuell die Zellen anzupassen.

In der Regel führe ich nach aktualisieren der Werte nur ein Makro zum Versandt aus.
Top
#5
@Sigi,

Verzichte auf Worksheerfunction in VBA:

Statt:

Zitat:    Txt = WorksheetFunction.Substitute(Txt, " ", "")
    Txt = WorksheetFunction.Substitute(Txt, ".", ",")
verwende
Code:
Txt = Replace(Txt, " ", "")
Txt = Replace(Txt, ".", ",")

Als Function reicht schon:

Code:
Function F_snb(c00)
   c00 = LCase(c00)
   sn = Array(Val(Split(c00, "h")(0)), Val(StrReverse(Val(StrReverse(Split(c00, "m")(0))))), Round(--StrReverse(Val(StrReverse(Split(c00, "s")(0)))), 1))
   F_snb = TimeSerial(IIf(InStr(c00, "h"), sn(0), 0), IIf(InStr(c00, "m"), sn(1), 0), sn(2))
End Function
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#6
(07.05.2021, 14:00)Freakazoid48 schrieb: Hierbei können die Werte unterschiedlich ausfallen.
Heute könnte es "3m25s" sein, morgen schon "10m13s" und in einer Woche "1h30m4s"

bedeutet dies,  dass maximale Anzahl Stellen "xxhxxmxxs" so aussieht?

ist die Reihenfolge immer h m s ?
Top
#7
sofern dich Hilfspalten nicht stören


Angehängte Dateien
.xlsx   Text-in-Zeit-1.xlsx (Größe: 16,02 KB / Downloads: 2)
Top
#8
Vielen lieben Dank an alle für die Vorschläge.

Hilfszeilen würde ich gern vermeiden, weswegen ich auf die Lösung von snb zurückgegriffen habe.
Diese funktioniert einwandfrei und passt auch super zum sonstigen Aufbau des Reportes.

Jetzt muss ich zwar noch etwas die erstellte Funktion auseinander pflücken, damit ich sie verstehe, aber mein Thema ist gelöst =)

Nochmals vielen Dank
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste