Das Fehlen der Std. fehlte mir in der Datei als Beispiel (im Forumstext war es, stimmt). Ok.
In B1: benenne Rechne beziehtSichAuf =AUSWERTEN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(time!$A1;"d";"/1+");"h";"/24+");"m";"/1440+");"s";"/86400"))
B1: =Rechne
So können d h m s alle fehlen oder in beliebiger Anordnung stehen.
(27.11.2023, 16:52)LCohen schrieb: [ -> ]Das Fehlen der Std. fehlte mir in der Datei als Beispiel (im Forumstext war es, stimmt). Ok.
Zeile 7 ;) Dadurch habe ich es ja erst bemerkt
Hallo
Da der TE Beratung Resistenz ist, hier eine einfache PQ Lösung, kein VBA und keine Registerformel benötigt wird.
Zitat:Beratung Resistenz
scheint mir eher:
Beratung resistent
Oder
Code:
Sub M_snb()
With CreateObject("ADODB.recordset")
.Open "SELECT '=' & replace(replace(replace(replace(replace(tijd,""d"",""""),""h"",""/24""),""m"",""/1440""),""s"",""/86400""),"" "",""+"") FROM `time$`", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0"""
Cells(20, 2).CopyFromRecordset .DataSource
End With
Cells(20, 2).CurrentRegion = Cells(20, 2).CurrentRegion.Value
End Sub
Und was PQ bei @PIVPQ macht ist nur dieses mit einer anderen Sprache:
Code:
Sub M_snb()
With CreateObject("ADODB.recordset")
.Open "SELECT left(tijd,instr(tijd,""d"")), right(left(tijd,instr(tijd,""h"")),3) ,right(left(tijd,instr(tijd,""m"")),3), right(left(tijd,instr(tijd,""s"")),3) FROM `time$`", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0"""
sheets("time").Cells(4, 2).CopyFromRecordset .DataSource
End With
End Sub
Hallo,
Tage:
=WECHSELN(TEIL($A1;WENNFEHLER(MAX(1;SUCHEN("d";$A1)-2);LÄNGE($A1)+1);2);"d";"")
Stunden:
=WECHSELN(TEIL($A1;WENNFEHLER(MAX(1;SUCHEN("h";$A1)-2);LÄNGE($A1)+1);2);"h";"")
Minuten:
=WECHSELN(TEIL($A1;WENNFEHLER(MAX(1;SUCHEN("m";$A1)-2);LÄNGE($A1)+1);2);"m";"")
Sekunden:
=WECHSELN(TEIL($A1;WENNFEHLER(MAX(1;SUCHEN("s";$A1)-2);LÄNGE($A1)+1);2);"s";"")
Gruß, Uwe
Variante zu #4 mit einstelligen Tageszahlen:
Code:
=WENNFEHLER(--LINKS($A1;FINDEN("d";$A1)-1);"")
für Stunden, Minuten und Sekunden:
Code:
=WENNFEHLER(--TEIL($A1;FINDEN("h";$A1)-2;2);"")
("h" durch "m" bzw. "s" ersetzen)
Hallo,
eine Alternative: Der Code berechnet die Zeit ([h]:mm:ss)
Code:
Sub T_1()
Dim Ar, Zt As Date
For i = 1 To 7
Ar = Split(Cells(i, 1))
For a = 0 To UBound(Ar)
Select Case Right(Ar(a), 1)
Case Is = "d": Zt = Val(Ar(a))
Case Is = "h": Zt = Zt + Val(Ar(a)) / 24
Case Is = "m": Zt = Zt + Val(Ar(a)) / 1440
Case Is = "s": Zt = Zt + Val(Ar(a)) / 86400
Case Else: Stop
End Select
Next a
Cells(i, 2) = Zt
Zt = 0
Next i
End Sub
16h 12m 53s 16:12:53
16h 27m 35s 16:27:35
02h 46m 26s 2:46:26
16h 27m 35s 16:27:35
1d 13h 31m 07s 37:31:07
16m 25s 0:16:25
01h 00m 11s 1:00:11
mfg