Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] Μορφοποιηση κελιού ημερομηνίας σε Χ/Χ/ΧΧΧΧ με χρήση μακροεντολής (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/3519-morfopoiisi-kelioi-imerominias-se-x-x-xxxx-me-xrisi-makroentolis.html)

Zounds 14-01-15 20:13

Μορφοποιηση κελιού ημερομηνίας σε Χ/Χ/ΧΧΧΧ με χρήση μακροεντολής
 
καλησπέρα,

θα ήθελα να μορφοποιήσω τη στήλη f με ημερομηνίες που έχουν την μορφή 20.05.2015 σε 20/5/2015 ( απο χχ.χχ.χχχχ σε χ/χ/χχχχ )

χρησιμοποιήσα τον παρακάτω κωδικα
Κώδικας:

Sub datesformat()
'
' DateFormat Macro
'
    Range("f:f").Select
 
    'Selection.NumberFormat = "m/d/yyyy"
 
    Selection.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
    Cells.Find(What:=".", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
    , SearchFormat:=False).Activate
       
    'Selection.NumberFormat = "m/d/yyyy"
   
    Selection.Replace What:="/0", Replacement:="/", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
   
    'Selection.NumberFormat = "m/d/yyyy"
   
End Sub

ομως σε κάποια κελιά που η ημερομηνια ειναι για παραδειγμα 10/01/2015 ενώ θελω να την κανει 10/1/2015, δεν την αλλάζει...

'Οταν όμως μπαίνω σε ένα απο αυτα τα κελιά και πατάω f2 και μπαίνω μέσα και πατάω enter αλλάζει.

Κάποια βοήθεια ;

ευχαριστώ εκ των προταίρων. :worthy:

Tasos 14-01-15 21:13

Καλησπέρα!

Δοκίμασε:

Κώδικας:

Sub test()
    With Range("F1:F" & Range("F" & Rows.Count).End(xlUp).Row)
        .NumberFormat = "d/m/yyyy"
        ' αν δεν υπάρχει αποτέλεσμα αφαίρεσε την απόστροφο από την παρακάτω γραμμή
        '.Formula = .Formula
    End With
End Sub

Καλή συνέχεια!

Τάσος

Zounds 15-01-15 09:16

Μολις το δοκίμασα κάποια κελιά επιμένουν να φαίνονται ως General Format παρά την εφαρμογή του κώδικα ....
και φαίνονται για παραδειγμα 15/01/2015 αντί 15/01/2015 που θέλω... ή 15/1/2015 με general format που παλι δεν μου κανει γιατι στο φιλτραρισμα δεν τα αναγνωριζει σαν ημερομηνίες.

Τί ακριβώς γίνεται ;

Tasos 15-01-15 12:10

1 Συνημμένο(α)
Η στήλη που θέλεις να μορφοποιήσεις προφανώς περιέχει κελιά με μορφή "κείμενο" ή κελιά με μορφή "Γενική" που περιέχουν Απόστροφο ( ' ) + την ημερομηνία.

Δοκίμασε:

Κώδικας:

Sub GhangeNumberFormat()
    With Range("F1:F" & Range("F" & Rows.Count).End(xlUp).Row)
        .NumberFormat = "d/m/yyyy"
        .TextToColumns DataType:=xlFixedWidth, FieldInfo:=Array(0, 4)
    End With
End Sub

Δες και το παράδειγμα στο συνημμένο.

Τάσος

Zounds 15-01-15 19:00

Καλησπέρα,

σε ευχαριστώ πολύ για την βοηθειά σου,

τελικά αυτή η γραμμούλα
Κώδικας:

        .TextToColumns DataType:=xlFixedWidth, FieldInfo:=Array(0, 4)
έκανε την διαφορά.. δεν θα μπορούσα να το σκεφτώ δεν το ήξερα ...

ευχαριστώ,


Η ώρα είναι 13:11.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2