• DİKKAT

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

Farklı haneli tarihleri standart tarih formatına dönüştürmek

  • Konbuyu başlatan Konbuyu başlatan Mertsan
  • Başlangıç tarihi Başlangıç tarihi
Katılım
12 Aralık 2015
Mesajlar
67
Excel Vers. ve Dili
Excel 2010 ingilizce
Merhabalar,

Excel formatında bir cari hesap ekstresi var. Tarih sütunundaki tarihler standart bir formatta değil. Şöyle ki;
14.01.2016 olması gereken tarih 140116 iken
04.01.2016 olması gereken tarih 40116 şeklinde formatlanmış.
Özellikle ikinci durumdaki tek haneli günler işi daha da zorlaştırıyor.

Excel hücre formatlama seçeneğinden bir çok yöntem denediysem de bu formattaki tarihleri 14.01.2016 şeklindeki noktalı tarih formatına çeviremedim. Bu konuda bir yöntem önerebilecek arkadaşların yardımlarını bekliyorum.

VBA kodları ile olursa daha da iyi olur. Ancak öbür türlü de razıyım arkadaşlar.

Ek olarak örnek dosya yükledim. A sütunundaki tarihler B sütunundaki örneklerde olduğu gibi formatlanacak.

İyi çalışmalar dilerim.
 

Ekli dosyalar

Sayın Mertsan
Aşağdaki formülü uygularsanız.
Kod:
=METNEÇEVİR(EĞER(UZUNLUK(A1) =5;SOLDAN(A1;1);SOLDAN(A1;2)) & "/" & EĞER(UZUNLUK(A1) =6; PARÇAAL(A1;2;2);PARÇAAL(A1;3;2) )& "/" & SAĞDAN(A1;2);"gg.aa.yyyy")
 
Son düzenleme:
vba ile
Kod:
Sub aa()
If Len(ActiveCell) = 5 Then
gun = Left(ActiveCell, 1)
ay = Mid(ActiveCell, 2, 2)
Else
gun = Left(ActiveCell, 2)
ay = Mid(ActiveCell, 3, 2)
End If
yıl = Right(ActiveCell, 2)
ActiveCell.Value = CDate(gun & "." & ay & "." & yıl)
End Sub
 
Dosyanız ektedir.:cool:
Kod:
Sub tarih59()
Dim sonsat As Long, i As Long, tarih As Date
sonsat = Cells(Rows.Count, "A").End(xlUp).Row
Range("B9:B" & Rows.Count).ClearContents
Application.ScreenUpdating = False
For i = 9 To sonsat
    tarih = DateSerial(Left(Year(Date), 2) & Right(Cells(i, "A").Value, 2), Left(Right(Cells(i, "A").Value, 4), 2), Left(Cells(i, "A").Value, Len(Cells(i, "A").Value) - 4))
    Cells(i, "B").Value = tarih
    Cells(i, "B").NumberFormat = "dd.mm.yyyy"
Next i
Application.ScreenUpdating = True
    MsgBox "İşlem tamam." & vbLf & "evrengizlen@hotmail.com"
End Sub
 

Ekli dosyalar

Sayın Alicimri,
Sayın Orion1,

Hızlı yanıtlarınız ve çözümleriniz için ayrı ayrı teşekkür ederim.

Sayın Orion1'in kodu konunun tam çözümü oldu. Ellerinize sağlık.

Sayın alicimri'nin kodu aktif hücrede çözüme ulaşıyor. Bulunduğu hücrede konuyu çözmesi bakımından iyi bir başka çözüm yolu.

=metneçevir() Formülünüzü uygulamada ise yetersiz kaldım. Ama üzerinde çalışacağım çünkü formülle de çözüme gitmek bilgilenmek bakımından yararlı olacak.
 
Sayın Alicimri,
Sayın Orion1,

Hızlı yanıtlarınız ve çözümleriniz için ayrı ayrı teşekkür ederim.

Sayın Orion1'in kodu konunun tam çözümü oldu. Ellerinize sağlık.

Sayın alicimri'nin kodu aktif hücrede çözüme ulaşıyor. Bulunduğu hücrede konuyu çözmesi bakımından iyi bir başka çözüm yolu.

=metneçevir() Formülünüzü uygulamada ise yetersiz kaldım. Ama üzerinde çalışacağım çünkü formülle de çözüme gitmek bilgilenmek bakımından yararlı olacak.
Rica ederim.
İyi çalışmalar.
Not:
Metne çevir formülü tarih değerini metin olarak tutar.
Bilginize
 
Geri
Üst