Tarihi yıl ve ay olarak ayırabilmek

Katılım
27 Şubat 2008
Mesajlar
10
Excel Vers. ve Dili
ofis 2003
İyi akşamlar
A sütünuna girdiğim tarihin B sütünuna yılı,C sütününa ayı makro veya VBA ile yazdırmak istiyorum.
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,595
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Kodları dener misiniz?

Kod:
Option Base 1
Sub TarihCevir()
Dim i As Long
Aylar = Array("Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık")
Application.ScreenUpdating = False
Range("B5:C65536").ClearContents
For i = 5 To [A65536].End(3).Row
    Cells(i, "B") = Year(Cells(i, "A"))
    Cells(i, "C") = Aylar(Month(Cells(i, "A")))
Next i
Application.ScreenUpdating = True
End Sub
 

Ekli dosyalar

usubaykan

Destek Ekibi
Destek Ekibi
Katılım
16 Mayıs 2008
Mesajlar
561
Excel Vers. ve Dili
Ev : Office Excel 2003
İş : Office Excel 2003
Selamlar,

Sadece hücrelerin FORMAT ayarlarını değiştirerek makro yazdım. Formda buna benzer sayısız örnek mevcuttur detaylı arama yaparsanız farklı metodlarlada karşılaşırsınız. Kolay gelsin.
Kod:
Option Explicit
Sub tarih()
    Dim U As Long
    For U = 1 To 100
    If Cells(U, 1).NumberFormat = "m/d/yyyy" Then
    Range(Cells(U, 2), Cells(U, 3)).Value = Cells(U, 1).Value
    Cells(U, 2).NumberFormat = "yyyy"
    Cells(U, 3).NumberFormat = "dddd"
    Else:
    End If
    Next
End Sub
 

usubaykan

Destek Ekibi
Destek Ekibi
Katılım
16 Mayıs 2008
Mesajlar
561
Excel Vers. ve Dili
Ev : Office Excel 2003
İş : Office Excel 2003
Valla Necdet Hocam erken davranmış ben soruyu yanıtladığınızı görmedim ellerinize sağlık hocam.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,595
Excel Vers. ve Dili
Ofis 365 Türkçe
Valla Necdet Hocam erken davranmış ben soruyu yanıtladığınızı görmedim ellerinize sağlık hocam.
Bende sizi alternatif çözüm ürettiğiniz için kutlarım. Açıkcası ben hangi yöntemi uygulayım diye karar veremedim, öz VBA olsun istedim :)

Sizin yönteminizde döngüyü de kaldırmak olası

Kod:
Sub YilAy()
Dim i As Long
i = [A65536].End(3).Row
Range("A5:A" & i).Copy Range("B5:C" & i)
Range("B5:B" & i).NumberFormat = "yyyy"
Range("C5:C" & i).NumberFormat = "mmmm"
End Sub
 
Katılım
27 Şubat 2008
Mesajlar
10
Excel Vers. ve Dili
ofis 2003
Değerli hocalarım emeğinize sağlık,cok teşekkür ederim.
 
Katılım
27 Şubat 2008
Mesajlar
10
Excel Vers. ve Dili
ofis 2003
Sayın Necdet Yeşertener; A sütünunda arada boş hücre kaldığında B sütünunda 1899, C sütununda Aralık değeri yazıyor. Oysa,A sütünu boşşa B ve C sütünlarının boş kalması mümkün mü?
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,595
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Mesaj gözümden kaçmış, geç yanıt verdim, özür dilerim.
Kodlara küçük bir ekle sorununuz çözülür. A hücresi tarihse işlemi devam ettir demek istedim.

Kod:
Option Base 1
Sub TarihCevir()
Dim i As Long
Aylar = Array("Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık")
Application.ScreenUpdating = False
Range("B5:C65536").ClearContents
For i = 5 To [A65536].End(3).Row
   [B][COLOR=red] If IsDate(Cells(i, "A")) = True Then[/COLOR][/B]
        Cells(i, "B") = Year(Cells(i, "A"))
        Cells(i, "C") = Aylar(Month(Cells(i, "A")))
    [B][COLOR=red]End If
[/COLOR][/B]Next i
Application.ScreenUpdating = True
End Sub
 
Katılım
27 Şubat 2008
Mesajlar
10
Excel Vers. ve Dili
ofis 2003
Sayın Nejdet Yeşertener alkanıza çok teşekkür ederim.Tam istediğim gibi olmuş
 
Üst