• DİKKAT

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

VBA Tarih formatı değiştirme

Katılım
7 Mayıs 2006
Mesajlar
367
Excel Vers. ve Dili
2019 İngilizce
A sütunu şu şekilde:

TARİH
42240
42240
42241
42241
42241
42241

For i = 2 to blabla
Cells(i, "B") = Format(Cells(i, "A"), "d mmm yyyy")
Next i

kodu ile yeni formata geçiriyorum. Buna ek olarak, örneğin "24 Ağu 2015" şeklinde çıkan değeri ingilizceye çevirmek istiyorum. Yani "24 Aug 2015" olarak gözüksün... Replace ile "ağu" yu "aug" yaptığım anda format bozulup "24.08.2015" halini alıyor...

Var mı halledebilecek biri?
 
Merhaba,

Bu şekilde deneyin.

Kod:
Cells(i, "B") = "'" & WorksheetFunction.Text(Cells(i, "A"), "[$-409]dd mmm yyy;@")

.
 
teşekkürler, umarım başa eklenen "'" hata çıkarmaz.. koda devam ediyorum. sonucu bildiririm...
 
Benim sorum şu olacak. Jeeday'in
For i = 2 to blabla
Cells(i, "B") = Format(Cells(i, "A"), "d mmm yyyy")
Next i

şeklinde yazdığı kodu For - Next ile değilde örneğin yazılı olan satırlar A1 ve A6 arasında olursa
Range("A1:A6") = Format(Range("A1:A6"), "d mmm yyyy") gibi bir ifadeyle çözüm bulamıyor muyuz?
Çünkü verilerin olduğu bu satır sayısı çok olduğunda bu işlemi For - Next ile yapması uzun sürüyor.

Benim Verilerim aşağıdaki şekilde Metin formatında sayılar.
A1 hücresinde = 5,33
A2 hücresinde = 8,25
A3 hücresinde = 100,14
A4 hücresinde = 542
.
.
.
A1000 hücresinde =97,64

Aşağıdaki gibi Double ' a çeviriyorum
For i = 1 To 1000
' Cells(i, "A") = CDbl(Format(Cells(i, "A"), "General Number"))
'Next i

Fakat bunlardan birçok sayfada var. Bu yüzden For - Next ile uzun sürüyor. A1 ile A1000 arasını tek seferde seçip çeviremez miyim?
 
Son düzenleme:
Aslında bu işlem için makro kullanmanıza gerek yok.

Hücreleri mouse ile seçerek TARİH olarak biçimlendirebilirsiniz.
 
Korhan bey cevabınız için teşekkür ederim ama benim bunu makro olarak kullanmam gerekiyor. Uzun bir bir kod bütününün içinde geçiyor çünkü.
 
Dediğim işlemi MAKRO KAYDET işlemi ile yaparak kodları elde edebilirsiniz.
 
Makro Kaydet ile denemiştim fakat olmuyor.
Sub Makro5()
'
' Makro5 Makro
'

'
Selection.NumberFormat = "0.00"
End Sub

Bu arada ben TARİH'e değil Double ' a çevirmek istiyorum.
Yukarıda sormuştum ama tekrarlayım

Benim Verilerim aşağıdaki şekilde Metin formatında sayılar.
A1 hücresinde = 5,33
A2 hücresinde = 8,25
A3 hücresinde = 100,14
A4 hücresinde = 542
.
.
.
A1000 hücresinde =97,64

Aşağıdaki gibi Double ' a çeviriyorum
For i = 1 To 1000
' Cells(i, "A") = CDbl(Format(Cells(i, "A"), "General Number"))
'Next i

Fakat bunlardan birçok sayfada var. Bu yüzden For - Next ile uzun sürüyor. A1 ile A1000 arasını tek seferde seçip çeviremez miyim?
 
METNİ SÜTUNLARA DÖNÜŞTÜR menüsünü yine MAKRO KAYDET yöntemiyle kullanabilirsiniz. Bu menü yardımıyla verileri sayıya dönüştürebilirsiniz.
 
Sanırım ben anlatmıyorum. Sayıları virgüllerinden ayırmak istemiyorum Korhan bey. A sütunundaki Metin formatındaki sayıları , bulundukları hücrede, aynı oldukları şekilde Double formatında sayıya çeviren bir makroya ihtiyacım var. Çünkü sayıların çoğu ondalıklı sayılar.
Örnek dosya yüklemek isterdim ama üyeliğimin süresi dolmuş. Tekrar üye olmak için Ödemeyi yeni yaptım fakat henüz onaylanmadı.
Onaylanınca örnek dosya yüklerim.
 
Merhaba
Range("A1:A1000").NumberFormat = "#,##0.00"
Şeklinde dener misiniz
 
İşlem adımlarını tarif ediyorum.

Makro kaydet tuşuna tıklayınız.
Sayıya çevirmek istediğiniz sütunu seçiniz.
Metni sutunlara dönüştür menüsünü çalıştırınız.
İLERİ-İLERİ dedikten sonra SAYI seçimini yaparak işlemi tamamlayın.
Son olarak makro kaydını durdurun.

Sonrasinda oluşan kodları kendi kod bloğunuza uyarlaması kalıyor.
 
İşlem adımlarını tarif ediyorum.

Makro kaydet tuşuna tıklayınız.
Sayıya çevirmek istediğiniz sütunu seçiniz.
Metni sutunlara dönüştür menüsünü çalıştırınız.
İLERİ-İLERİ dedikten sonra SAYI seçimini yaparak işlemi tamamlayın.
Son olarak makro kaydını durdurun.

Sonrasinda oluşan kodları kendi kod bloğunuza uyarlaması kalıyor.

Korhan bey dediğiniz şekilde denedim fakat İLERİ-İLERİ dedikten sonra SAYI seçimi çıkmıyor bendeki pencerede. Ekran Fotoğrafını ve örnek dosyayı gönderiyorum.
 

Ekli dosyalar

  • Metni sayıya çevir.xlsx
    Metni sayıya çevir.xlsx
    19 KB · Görüntüleme: 2
  • Metni Sütunlara Dönüştür.jpg
    Metni Sütunlara Dönüştür.jpg
    271.2 KB · Görüntüleme: 9
Ek bir bilgi daha vereyim. A sütunundaki sayılar internetten kopyalanıyor ve otomatik olarak tarih formatına çevirmemesi için Metin olarak yapıştırılıyor.
 
Boş bir hücreye 1 yazın. O hücreyi kopyalayın, sonra sütundaki verileri seçin, sağ tık .... özel yapıştır, "Çarp" ve işlemi tamamlayın.

.
 
Çok afedersiniz. Telefondan cevap yazdığım için SAYI olarak aklımda kalmış ve o şekilde ifade etmiştim. GENEL seçeneğini seçip işlemi yapmalısınız.

Sonrasında ilgili alanın METİN olarak görünen hücre biçimini GENEL olarak ayarlamalısınız. Son aşamadan sonra verilerini sağa hizalı olarak görünecektir.
 
Haluk bey vakit ayırdığınız için teşekkür ederim. Makro ile çözmem gerekiyordu.
 
Korhan Ayhan bey size de ayrıca çok teşekkür ederim. Değerli vaktinizi ayırdınız. Anlattığınız şekilde Makro kaydet ile çözüme ulaştım. Sağlıcakla Kalın.
 
Alternatif kod;

C#:
Sub Test()
    Dim xRng As Range
    
    For Each xRng In Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
        xRng.NumberFormat = "0.00"
        xRng = xRng + 0
    Next
End Sub

.
 
Geri
Üst