Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

AutomatischSekunden in Stunden umwandeln
#1
Hallo, ich versuche mir gerade ein Trainingstagebuch auf Excel basis anzulegen. Ich Importiere mir xlsx Dateien, deren Werte ich mir in meine passene Tabelle reinkopiere.
Klappt alles wunderbar, bis auf das der Wert Dauer in der Orginal Datei in Sekunden reinkommt und die Länge in Meter.
Jetzt möchte ich, das die Dauer in "[hh:mm:ss]"  angezeigt wird und die Länge in km.
Ich mach das händisch mit  Zelle/86400 und das Format stelle ich dann auf Uhrzeit [37:30:55], bei den Metern Zelle /1000.
Kann man auf die Spalte mit einer Formel belegen, die das automatisch umwandelt?
Antwortento top
#2
Hi Richy,

meinst du das so?

Tabelle1

AB
1SekStd/Min/Sek
2750:01:15
31200:02:00
41800:03:00
5
6
7
Formeln der Tabelle
ZelleFormel
B2=WENN(A2<>"";TEXT(A2/86400;"[h]:mm:ss");"")
B3=WENN(A3<>"";TEXT(A3/86400;"[h]:mm:ss");"")
B4=WENN(A4<>"";TEXT(A4/86400;"[h]:mm:ss");"")
B5=WENN(A5<>"";TEXT(A5/86400;"[h]:mm:ss");"")
B6=WENN(A6<>"";TEXT(A6/86400;"[h]:mm:ss");"")
B7=WENN(A7<>"";TEXT(A7/86400;"[h]:mm:ss");"")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Günter
Misserfolg ist eine Chance, es beim nächsten Mal besser zu machen.
(Henry Ford) http://www.sprueche-zum-nachdenken.eu
Antwortento top
#3
Hallöchen,

eine Zelle mit einer Formel belegen, sodass bei Eingabe gleich dividiert wird, geht wohl nur mit einem Makro, dass auf die Eingabe reagiert.

Du kannst aber auch in irgendeine Zelle den Divisor schreiben. Dann tust Du diese Zelle kopieren, alle Zellen mit den umzuwandelnden Zahlen markieren und über "Inhalte einfügen" mit der Option "Dividieren" die Umwandlung ausführen.
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#4
Werde ich wohl über Makro machen müssen.
Wenn es geht melde ich mich
Antwortento top
#5
(07.07.2015, 20:29)derrichy schrieb: Werde ich wohl über Makro machen müssen.
Wenn es geht melde ich mich

Habe das ganze über VBA hinbekommen (zusammen gegooglet)
Hier mein code - geht bestimmt einfacher, aber funzt
Code:
Sub Import_Run()
Dim V As String
With Application.FileDialog(msoFileDialogFilePicker)
   .Show
   V = .SelectedItems(1)
End With
Application.Workbooks.OpenText Filename:=V, DataType:=xlDelimited, _
Semicolon:=True, Local:=True
ActiveSheet.Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
Sheets(Sheets.Count).Name = "Import"
'Zelle umrechnen von sekunden zu hh:mm:ss
Sheets("Import").Range("C3").Select
Selection.Copy
Sheets("Import").Range("C4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Import").Range("C3").ClearContents
Sheets("Import").Range("C3").FormulaLocal = "=C4/86400"
'Zelle umrechnen von meter in km
Sheets("Import").Range("E3").Select
Selection.Copy
Sheets("Import").Range("E4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Import").Range("E3").ClearContents
Sheets("Import").Range("E3").FormulaLocal = "=E4/1000"
'Bereich kopieren
Sheets("Import").Range("A3:U3").Copy
'einfügen in erste freie Zeile in ausgabe
Sheets("Run").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Sheets("Import").Select
Application.CutCopyMode = False
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
ActiveWorkbook.Save

End Sub

Der Tip mit dem Makro war es :)
Antwortento top
#6
Hallöchen,

ich habe Dein Makro mal etwas optimiert:
Code:
Sub Import_Run()
Dim V As String
With Application.FileDialog(msoFileDialogFilePicker)
   .Show
   V = .SelectedItems(1)
End With
Application.Workbooks.OpenText Filename:=V, DataType:=xlDelimited, _
Semicolon:=True, Local:=True
ActiveSheet.Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
ActiveSheet.Name = "Import"
'Zelle umrechnen von sekunden zu hh:mm:ss
Range("C3").Copy
Range("C4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C3").FormulaLocal = "=C4/86400"
'Zelle umrechnen von meter in km
Range("E3").Copy
Range("E4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("E3").FormulaLocal = "=E4/1000"
'Bereich kopieren
Range("A3:U3").Copy
'einfügen in erste freie Zeile in ausgabe
Sheets("Run").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
ActiveWorkbook.Save
End Sub

Im Prinzip habe ich einige Selects entsorgt, nach dem Kopieren ist das neue Blatt das aktive, da können also einige Blattnamen weg und ClearContents ist auch nicht nötig, wenn Du die Zelle mit den Formeln neu befüllst.

So, und jetzt noch ein Hinweis. Du kannst auch direkt im VBA rechnen und den Zellinhalt austauschen. Das wäre dann so:

Range("C3").Value = Range("C3").Value / 86400
Range("E3").Value = Range("E3").Value / 1000

Bevor Dir noch jemand rät, .Value auch noch einzusparen, weil das Standard ist - ja, das geht. Ich machs aber aus Prinzip meistens nicht. So weiß ich gleich, dass es um den Zellwert geht und außerdem gibt es ein paar Fälle, wo das nicht geht Sad
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top


Gehe zu:


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