Soru Virgülü Noktaya Çevirme

Katılım
29 Mart 2013
Mesajlar
429
Excel Vers. ve Dili
Office 2016 Professional Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
14-03-2022
Metin formatındaki J14 den aşağıya doğru sonsuza kadar devam eden hücrelere, makro ile aktarılacak olan rakamlarda virgülden sonraki rakamlar için virgül kullanılıyor.
Amaç J14 hücresinden aşağıya doğru sonsuza kadar giden hücrelere veri girişi olduğunda otomatik olarak ve anlık olarak Virgülleri noktaya çevirmesini istiyorum.
Mümkün müdür böyle birşey acaba?
 

Ekli dosyalar

Katılım
29 Mart 2013
Mesajlar
429
Excel Vers. ve Dili
Office 2016 Professional Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
14-03-2022
Konu Günceldir.
 
Katılım
29 Mart 2013
Mesajlar
429
Excel Vers. ve Dili
Office 2016 Professional Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
14-03-2022
Konu Günceldir
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
"Bildirge" sayfasının kod modülüne aşağıdakini yapıştırıp, deneyin ....

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("J14:J" & Rows.Count)) Is Nothing Then
        Target.Value = Replace(Target.Value, ",", ".")
    End If
End Sub
.
 
Katılım
29 Mart 2013
Mesajlar
429
Excel Vers. ve Dili
Office 2016 Professional Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
14-03-2022
Çalışıyor fakat sonrasında
Run-time error '28:
Out of stack space
hatası veriyor #Haluk bey

If Not Intersect(Target, Range("J14:J" & Rows.Count)) Is Nothing Then
 
Son düzenleme:

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ben sayfa üzerine yazarak denemiş, bir hata almamıştım.

Ama siz, bir aşağıdaki şekliyle deneyin ....

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("J14:J" & Rows.Count)) Is Nothing Then
        Application.EnableEvents = False
            Target.Value = Replace(Target.Value, ",", ".")
        Application.EnableEvents = True
    End If
End Sub



.
 
Son düzenleme:
Katılım
29 Mart 2013
Mesajlar
429
Excel Vers. ve Dili
Office 2016 Professional Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
14-03-2022
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("J14:J" & Rows.Count)) Is Nothing Then
Application.EnableEvents = False
Target.Value = Replace(Target.Value, ",", ".")
Application.EnableEvents = True
End If
If Not Intersect(Target, Range("K14:K" & Rows.Count)) Is Nothing Then
Application.EnableEvents = False
Target.Value = Replace(Target.Value, ",", ".")
Application.EnableEvents = True
End If
End Sub

Formülü bu şekilde hem J hemde K sütununa uyguladım. Sorunsuz çalışıyor görevini yerine getiiryor. Fakat J ve K sütununu toplu olarak temizlediğim zaman, ekte resim formatın da sunulmuş olan ekran görüntüsü hatayı veriyor. Sonrasında cantinue( play ) butonuna basmama rağmen excele döndüğümde formül çalışmıyor. Sayfaları tamamen kapatıp açınca çalışıyor.
 

Ekli dosyalar

  • 64.2 KB Görüntüleme: 8
  • 58.2 KB Görüntüleme: 7

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Kodların başına;

On error resume next

satırını ilave edip, deneyin .....

.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Bu arada, şimdi fark ettim.... "K" sütunu için kodu gereksiz uzatmışınız. Her 2 sütun için (J ve K) aşağıdaki gibi deneyin ....

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("J14:K" & Rows.Count)) Is Nothing Then
        On Error Resume Next
        Application.EnableEvents = False
            Target.Value = Replace(Target.Value, ",", ".")
        Application.EnableEvents = True
    End If
End Sub
.
 
Katılım
1 Ekim 2017
Mesajlar
694
Excel Vers. ve Dili
2019 türkçe
Altın Üyelik Bitiş Tarihi
06/10/2023
İyi çalışmalar bu kod banada lazım. 70 kişilik listem var Kopyala yapıştır yaptığımda nokta olmuyor.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,397
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Ekli resimde görünen SGK nın dosyası, XML oluştururken nokta/virgül dönüşümü yapıyor hatırladığım kadarıyla.
Eğer öyle değilse, XML oluşturan prosedur üzerinde oynama yapmak daha mantıklı. Bunun sonucunda, sayfa üzerinde TR ondalık ayracı olarak virgül kalsın, önemli değil.
 
Katılım
1 Ekim 2017
Mesajlar
694
Excel Vers. ve Dili
2019 türkçe
Altın Üyelik Bitiş Tarihi
06/10/2023
Ekli resimde görünen SGK nın dosyası, XML oluştururken nokta/virgül dönüşümü yapıyor hatırladığım kadarıyla.
Eğer öyle değilse, XML oluşturan prosedur üzerinde oynama yapmak daha mantıklı. Bunun sonucunda, sayfa üzerinde TR ondalık ayracı olarak virgül kalsın, önemli değil.
İyi çalışmalar. Sgk xml dosyası incelediğimde nokta/virgül dönüşümü yapmıyor. Dosya aktarıldıktan sonra e bildirgede virgül olursa kuruş kısmını almıyor. onun için buna ihtiyaç duyuldu. formdaki kod elle yazılırsa noktaya çevriliyor. yalnız veriler çok olduğundan elle yazılma imkanı yok . kopyala yapıştır yaptığımızda noktaya çevrilmiyor. yardımcı olursanız sevinirim.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,397
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhaba. Dönüşüm yapmasına yapmış ama, "Val" fonksiyonu kullandığı için virgüllü kısımları kırpmış. Ben "CDbl" olarak değiştirdim.
VBA editöründe 89 nolu (üstte satır numarasını görürsünüz) satıra gidin ve mevcut kodları aşağıdaki ile değiştirerek deneyin.
Sayfa üzerine virgül ayraçlı olarak sayı yazın ve test edin.

(Not : Kodu test etmedim)

PHP:
If (IsNumeric(PRIM_UCRET)) Then
    PEK = PEK + CDbl(PRIM_UCRET)
End If
If (IsNumeric(PRIM_IKRAMIYE)) Then
    PEK = PEK + CDbl(PRIM_IKRAMIYE)
End If
PEK = Replace(PEK, ",", ".")
 
Katılım
1 Ekim 2017
Mesajlar
694
Excel Vers. ve Dili
2019 türkçe
Altın Üyelik Bitiş Tarihi
06/10/2023
Merhaba. Dönüşüm yapmasına yapmış ama, "Val" fonksiyonu kullandığı için virgüllü kısımları kırpmış. Ben "CDbl" olarak değiştirdim.
VBA editöründe 89 nolu (üstte satır numarasını görürsünüz) satıra gidin ve mevcut kodları aşağıdaki ile değiştirerek deneyin.
Sayfa üzerine virgül ayraçlı olarak sayı yazın ve test edin.

(Not : Kodu test etmedim)

PHP:
If (IsNumeric(PRIM_UCRET)) Then
    PEK = PEK + CDbl(PRIM_UCRET)
End If
If (IsNumeric(PRIM_IKRAMIYE)) Then
    PEK = PEK + CDbl(PRIM_IKRAMIYE)
End If
PEK = Replace(PEK, ",", ".")
sayın zeki bey vallahi yapamadım. kodu hepsıini bir verseniz çok iyi olur. iyi çalışmalar
 
Katılım
29 Mart 2013
Mesajlar
429
Excel Vers. ve Dili
Office 2016 Professional Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
14-03-2022
ZEKİ GÜRSOY BEYİN VERMİŞ OLDUĞU KODUN UYGULANMIŞ HALİDİR. KOD ÇALIŞIYOR. FAKAT GİRİŞLER VİRGÜLLÜ OLARAK GİRİLECEK. XML HAZIRLA BUTONUNA BASINCA OLUŞTURULAN XML DOSYYASI VİRGÜLSÜZ OLARAK İŞLEMİNİ YAPIYOR.
 

Ekli dosyalar

  • 139 KB Görüntüleme: 21
Katılım
29 Mart 2013
Mesajlar
429
Excel Vers. ve Dili
Office 2016 Professional Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
14-03-2022
Sadece ücret alanına yazılan rakamın nokta (.) yada virgül (,) ile yazılması sonucu 90. satırdan başlayan CDbl formülü ile kodlar otomatik olarak noktaya sorunsuz çeviriyor.
Fakat Hem ücret hemde ikramiye alanına rakam yazılınca pek toplamını yapıyor fakat, küsüratlara nokta eklemeden direk yazıyor rakamı. Toplama doğru ama sadece küsürata nokta koymuyor kodlar.
 
Katılım
29 Mart 2013
Mesajlar
429
Excel Vers. ve Dili
Office 2016 Professional Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
14-03-2022
Üst