• DİKKAT

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

Tarih Gibi Gözüken Veriler Tarihe Çevirme

Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Merhaba Arkadaşlar,
Excel dışı bir kaynaktan indirilen verilerde tarih sorunu hep olurdu, bir şekilde çözüm buluyorduk. Ama bu tarihleri makro ile tarih formatlı verilere dönüştüremedik.
* Bıl Değiştir "." > "." olmadı
* 1 ile Çarp olmadı
* Bu kod ile çözebiliyorduk bazen, olmadı.

Sub TarihYap()
With ActiveSheet.UsedRange.Columns("A").Cells
.TextToColumns Destination:=.Cells(1, 3), DataType:=xlFixedWidth, FieldInfo:=Array(0, xlYMDFormat)
.NumberFormat = "dd.mm.yyyy"
End With
With ActiveSheet.UsedRange.Columns("A").Cells
.NumberFormat = "0"
End With
End Sub
 

Ekli dosyalar

Kod:
Sub tarihYap()
    With Range("A2:A" & Cells(Rows.Count, 1).End(3).Row)
        For Each cell In .Cells
            With cell
                .NumberFormat = "dd.mm.yyyy"
                .Value = CDate(Trim(.Value))
            End With
        Next
    End With
End Sub
 
Kod:
Sub tarihYap()
    With Range("A2:A" & Cells(Rows.Count, 1).End(3).Row)
        For Each cell In .Cells
            With cell
                .NumberFormat = "dd.mm.yyyy"
                .Value = CDate(Trim(.Value))
            End With
        Next
    End With
End Sub
veyselemre üstadım çok teşekkür ederim. Harika oldu. Çok güzel çalışıyor.
C sütununda da çalışması için kodun neresini değiştirmemiz lazım üstad !
 
Datada boş hücreler olmazsa A2:C olarak çalışıyor. Boş hücre olunca çalışmıyor.
Boş hücreleri de dikkate alması nasıl sağlanır acaba ?
Kod:
Sub tarihYap()
    On Error Resume Next
    With Range("A2:C" & Cells(Rows.Count, 1).End(3).Row)
        For Each cell In .SpecialCells(xlCellTypeConstants)

            With cell
                If IsDate(CDate(Trim(.Value))) Then
                    If Err = 0 Then
                        .NumberFormat = "dd.mm.yyyy"
                        .Value = CDate(Trim(.Value))
                    Else
                        Err = 0
                    End If
                End If
            End With

        Next
    End With
    On Error GoTo 0
End Sub
 
Son düzenleme:
Kod:
Sub tarihYap()
    On Error Resume Next
    With Range("A2:C" & Cells(Rows.Count, 1).End(3).Row)
        For Each cell In .SpecialCells(xlCellTypeConstants)

            With cell
                If IsDate(CDate(Trim(.Value))) Then
                    If Err <> 0 Then
                        .NumberFormat = "dd.mm.yyyy"
                        .Value = CDate(Trim(.Value))
                    End If
                End If
            End With

        Next
    End With
    On Error GoTo 0
End Sub
Üstad ilgine çok teşekkür ederim. Bu son kod çalışmadı ye da ben beceremedim :(
 
Kod:
 If Err = 0 Then
Olacak yanlış olmuş. 7 nolu mesaj güncellendi.
 
Son düzenleme:
Geri
Üst