VBA Tarih formatı değiştirme

Katılım
7 Mayıs 2006
Mesajlar
367
Excel Vers. ve Dili
2019 İngilizce
Altın Üyelik Bitiş Tarihi
04.12.2019
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?
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Bu şekilde deneyin.

Kod:
Cells(i, "B") = "'" & WorksheetFunction.Text(Cells(i, "A"), "[$-409]dd mmm yyy;@")
.
 
Katılım
7 Mayıs 2006
Mesajlar
367
Excel Vers. ve Dili
2019 İngilizce
Altın Üyelik Bitiş Tarihi
04.12.2019
teşekkürler, umarım başa eklenen "'" hata çıkarmaz.. koda devam ediyorum. sonucu bildiririm...
 

ynstcrt

Altın Üye
Katılım
21 Mart 2021
Mesajlar
75
Excel Vers. ve Dili
Office 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
05-12-2024
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:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aslında bu işlem için makro kullanmanıza gerek yok.

Hücreleri mouse ile seçerek TARİH olarak biçimlendirebilirsiniz.
 

ynstcrt

Altın Üye
Katılım
21 Mart 2021
Mesajlar
75
Excel Vers. ve Dili
Office 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
05-12-2024
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ü.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Dediğim işlemi MAKRO KAYDET işlemi ile yaparak kodları elde edebilirsiniz.
 

ynstcrt

Altın Üye
Katılım
21 Mart 2021
Mesajlar
75
Excel Vers. ve Dili
Office 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
05-12-2024
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?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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.
 

ynstcrt

Altın Üye
Katılım
21 Mart 2021
Mesajlar
75
Excel Vers. ve Dili
Office 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
05-12-2024
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.
 

numan şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,231
Excel Vers. ve Dili
Ofis 2013 Türkçe
Merhaba
Range("A1:A1000").NumberFormat = "#,##0.00"
Şeklinde dener misiniz
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
İş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.
 

ynstcrt

Altın Üye
Katılım
21 Mart 2021
Mesajlar
75
Excel Vers. ve Dili
Office 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
05-12-2024
numan şamil bey teşekkür ederim cevabınız için ama maalesef olmadı
 

ynstcrt

Altın Üye
Katılım
21 Mart 2021
Mesajlar
75
Excel Vers. ve Dili
Office 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
05-12-2024
İş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

ynstcrt

Altın Üye
Katılım
21 Mart 2021
Mesajlar
75
Excel Vers. ve Dili
Office 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
05-12-2024
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.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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.

.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ç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.
 

ynstcrt

Altın Üye
Katılım
21 Mart 2021
Mesajlar
75
Excel Vers. ve Dili
Office 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
05-12-2024
Haluk bey vakit ayırdığınız için teşekkür ederim. Makro ile çözmem gerekiyordu.
 

ynstcrt

Altın Üye
Katılım
21 Mart 2021
Mesajlar
75
Excel Vers. ve Dili
Office 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
05-12-2024
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.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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
.
 
Üst