Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Uhrzeit im 24 Std-Format
#1
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
Antworten Top
#2
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"
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top
#3
funktioniert leider nicht
Antworten Top
#4
Hi,

stelle mal eine Musterdatei vor, damit man das Problem nachvollziehen kann. Der Code funktioniert in einer nackten Datei ohne Problem.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#5
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#6

.xlsm   fahrtdaten.xlsm (Größe: 17,27 KB / Downloads: 10)
Ich hoffe, es reicht so als Muster (wegen Datenschutz)
Antworten Top
#7
Hallo Peter,

wenn ich dein anfangs gepostetes Makro in deine unvollständig bereitgestellte Datei kopiere und laufen lasse, entsteht folgendes (Siehe Bild):
   
Wo ist nun das Problem, hier stimmt doch Alles!
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top
#8
Hallo Glausius,

   

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
Antworten Top
#9
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
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#10
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


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