• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Tarihi metne çevirme

  • Konbuyu başlatan Konbuyu başlatan hbgny
  • Başlangıç tarihi Başlangıç tarihi

hbgny

Altın Üye
Katılım
28 Eylül 2005
Mesajlar
177
Excel Vers. ve Dili
Microsoft Excel Office 2013 Türkçe
Merhaba,
Kullanmış olduğum dosyada onbinlerce satırlık veri var. Tarihi metneçevir formülü ile ayırıyorum. Sanırım veri çok olduğu için biraz kasıyor. Bunu makro ile yaparsam daha verimli çalışır mı? Yardımcı olursanız sevinirim.
 

Ekli dosyalar

Buyurun.:cool:
Kod:
Sub tarih59()
Dim sonsat As Long, i As Long
sonsat = Cells(Rows.Count, "A").End(xlUp).Row
Range("B2:D" & Rows.Count).ClearContents
Application.ScreenUpdating = False
For i = 2 To sonsat
    Cells(i, "B").Value = Day(Cells(i, "A").Value)
    Cells(i, "C").Value = Format(Cells(i, "A").Value, "mmmm")
    Cells(i, "D").Value = Year(Cells(i, "A").Value)
Next
Application.ScreenUpdating = True
MsgBox "Bitti" & vbLf & "evrengizlen@hotmail.com"
    
End Sub
 
Çok teşekkür ederim. Yalnız ay hücresini rakam olarak değil de ocak, şubat ... şeklinde nasıl yapabilirim onu da yazabilirseniz çok sevinirim.
 
Çok teşekkür ederim. Yalnız ay hücresini rakam olarak değil de ocak, şubat ... şeklinde nasıl yapabilirim onu da yazabilirseniz çok sevinirim.

Onu düzenledim.
Bir önceki mesajımdan tekrar alabilirsiniz.:cool:
 
Çok teşekkür ederim Evren bey, elinize sağlık. Ali Bey size de tavsiyeniz için teşekkür ederim.
 
Ali Beyin iltifatına teşekkür ederim.

Diğer yandan; bir alternatif önermek istedim .... ben 70.000 adet veri olan bir dosyada denedim, gayet randımanlı oldu.

B2, C2 ve D2 hücrelerinin herbirine aşağıdaki formülü girin;

Kod:
=A2
Daha sonra;

B2 hücresini gg

C2 hücresini aaaa

D2 hücresini yyyy

şeklinde, aşağıdaki resimde belirtildiği şekilde biçimlendirin.

Daha sonra B2, C2, D2 hücrelerini aşağıya doğru sürükleyerek alttaki hücrelere de kopyalanmasını sağlayın.

.


 
Son düzenleme:
Alternatif;

Satır sayısı fazla olduğunda blok olarak verileri işlemek daha hızlı sonuç veriyor.

Kod:
Sub Tarihi_Ayir_Gun_Ay_Yil()
    Application.ScreenUpdating = False
    
    Zaman = Timer
    Range("B2:D" & Rows.Count).ClearContents
    Son = Cells(Rows.Count, 1).End(3).Row
    
    With Range("B2:B" & Son)
        .Formula = "=DAY(A2)"
        .Value = .Value
    End With
    
    With Range("C2:C" & Son)
        .Formula = "=TEXT(A2,""aaaa"")"
        .Value = .Value
    End With
    
    With Range("D2:D" & Son)
        .Formula = "=YEAR(A2)"
        .Value = .Value
    End With

    Application.ScreenUpdating = True

    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 
Haluk Bey, Korhan Bey; ilginize çok teşekkür ederim. Korhan Bey sizin öneriniz daha çabuk sonuç veriyor. Ama şuan makrosuz hali, makrolu halinden daha hızlı çalışıyor. Sizlere dosyamın diğer kısımlarını da gönderiyorum. Herhalde diğer formüller dosyayı kasıyor. Ben tarih formülünü yaparsam olur diye düşünmüştüm ama olmadı. Sizler bu konuda daha tecrübelisiniz. Yardımcı olursanız sevinirim.
 

Ekli dosyalar

Son düzenleme:
Geri
Üst