Clever-Excel-Forum

Normale Version: Uhrzeit im 24 Std-Format
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

ich habe folgendes Makro mit dem Rekorder erstellt:

Sub Fahrtenliste()
'
' Fahrtenliste Makro
'

'
    Columns("C:C").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Columns("B:B").Select
    Selection.NumberFormat = "m/d/yyyy"
    Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
    Columns("A:F").Select
    ActiveWorkbook.Worksheets("fahrtdaten").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("fahrtdaten").Sort.SortFields.Add2 Key:=Range( _
        "B1:B1311"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("fahrtdaten").Sort
        .SetRange Range("A1:F1311")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Columns("C:C").Select
    Selection.NumberFormat = "h:mm"
End Sub

Beim Ausführen des Makros passiert folgendes:

in C wird eine Leerspalte - wie gewollt - eingefügt.
Dann kommt die Abfrage: Hier gibt es schon Daten - möchten Sie diese ersetzen?
Bei ja wird in Spalte D alles mit AM bzw. PM überschrieben.

Ich möchte aber in Spalte C nur die Uhrzeit im Format 00:00 ausgegeben haben.

Führe ich die Abläufe manuell durch, funkioniert alles - ich fromatiere manuell die
Spaltte C mit benutzerdefiniertem Format hh:mm - dies funkioniert im Makro auch nicht.

Wer kann mir helfen?

Vielen Dank im Voraus
Peter
Hallo,

probiere in Deinem Makro mal folgende Änderungen:

Columns("C:C").NumberFormat = "hh:mm"

bzw.:

Columns("C:C").NumberFormat = "[h]:mm"

an Stelle von:

Columns("C:C").Select
Selection.NumberFormat = "h:mm"
funktioniert leider nicht
Hi,

stelle mal eine Musterdatei vor, damit man das Problem nachvollziehen kann. Der Code funktioniert in einer nackten Datei ohne Problem.
Lösche 'dein' Makro.
Dann reicht schon

Code:
Sub M_snb()
  columns(2).numberformat="hh:mm"
  cells(1).currentregion.sort cells(1,2),,,,,,1
End Sub
[attachment=49727]
Ich hoffe, es reicht so als Muster (wegen Datenschutz)
Hallo Peter,

wenn ich dein anfangs gepostetes Makro in deine unvollständig bereitgestellte Datei kopiere und laufen lasse, entsteht folgendes (Siehe Bild):
[attachment=49729]
Wo ist nun das Problem, hier stimmt doch Alles!
Hallo Glausius,

[attachment=49732]

Die Daten aus C stehen nach dem Einfügen einer Spalte in D
und werden dann durch AM/PM überschrieben und dies darf nicht sein.
Außerdem soll keine Spalte mit AM/PM gefüllt werden.

Ich hoffe, das ist so zu verstehen.

Gruß
Peter
Hi,

lies mal das:

https://www.herber.de/forum/archiv/1688t...ormat.html

Code:
Sub Fahrtenliste()

    Columns("C:C").Insert Shift:=xlToRight
    Columns("C:C").NumberFormat = "hh:mm"
    Range("B:B").TextToColumns DataType:=xlFixedWidth, fieldinfo:=Array(Array(0, 1), Array(10, 9), Array(11, 1))
    Columns("B:B").NumberFormat = "mm/dd/yyyy"
   
    With ActiveWorkbook.Worksheets("fahrtdaten").Sort
        .SetRange Range("A1:F1311")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
   
End Sub
Code:
Sub M_snb()
  With Columns(2)
    .NumberFormat = "dd-mm-yyyy"
    .Copy
  End With
 
  With Columns(3)
    .Insert
    .NumberFormat = "hh:mm"
    Cells(1).CurrentRegion.Sort .Cells(1), , , , , , , 1
  End With
End Sub
Seiten: 1 2