nokta, virgül sorunu

Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
muhasebe programından excele veri aldığımda, binlik ve ondalık ayıraç virgül ve nokta olarak çıkıyor, benim işlem yapabilmem için makro ile virgülü silip, noktayı virgül yapmam gerekiyor, bu durumda excel sayı olarak algılıyor. Elle yapılıyor ama zaman alıyor. makro olursa diğer makroya monte ederek işlemi çabuklaştıracağım , teşekkürler
 

Ekli dosyalar

Katılım
6 Ekim 2004
Mesajlar
250
Excel Vers. ve Dili
MSOffice 2010 TR
Altın Üyelik Bitiş Tarihi
19-11-2020
merhaba

ctrl h ile önce virgülü başka bir şey yapsanız mesela ";" ... sonra noktayı virgül yapsanız sonra ";" lü istediğiniz karakter yapsanız bunu yaparken de makro kaydetseniz kodları uretmis olursunuz sanırım....
 
Katılım
9 Mayıs 2008
Mesajlar
48
Excel Vers. ve Dili
Excel 2010/2013 TR
Merhabalar. Dosyanızı almadan önce Dosya / Seçenekler / Gelişmiş Menüsünde Sistem ayırıcılarını kullan seçeneğini kaldırıp Muhasebe programınızdaki ondalık ve bin ayracına göre ayarlayın. Dosyanızı açın. Sonra tekrar aynı yerden seçeneği işaretleyin.

Eğer dosyanız düzgün olursa.

Bu kodları ondalık ve binlik ayracı olmasını istediğiniz gibi ayarlayıp, personal.xls dosyasına yapıştırıp. Hızlı araç çubuğuna düğme olarak ekleyin.

Dosyanızı açmadan önce ondalık değiştirme düğmesine açtıktan sonra da ondalık normal düğmesine basarsınız.

Umarım işinize yarar :)

Kod:
Sub ondalik_degistir()
    With Application
        .DecimalSeparator = ","
        .ThousandsSeparator = "."
        .UseSystemSeparators = False
    End With
End Sub

[CODE]Sub ondalik_normal()
    Application.UseSystemSeparators = True
End Sub
[/CODE]
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
denedim.

merhaba

ctrl h ile önce virgülü başka bir şey yapsanız mesela ";" ... sonra noktayı virgül yapsanız sonra ";" lü istediğiniz karakter yapsanız bunu yaparken de makro kaydetseniz kodları uretmis olursunuz sanırım....
denedim olmadı, tekrar tek tek sayıya çevir yapmam gerekiyor
 
Katılım
6 Ekim 2004
Mesajlar
250
Excel Vers. ve Dili
MSOffice 2010 TR
Altın Üyelik Bitiş Tarihi
19-11-2020
arkadaslarin onerdigi diger secenekeleri denediniz mi ?
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
denendi

arkadaslarin onerdigi diger secenekeleri denediniz mi ?
başka bilgisayarlarda çalışmam gerektiği için , bölgesel ayarlar haricinde diğerlerini denedim, hala da adapte etmeye çalışıyorum. benim sorunum her zaman sabit iki sütundaki virgülleri silip, noktaları virgül yapmak, yanımda bulundurup ek ayarla uğraşmamam gerekiyor, dalgınlıkla farklı işlem yapıp yanlış olmasın diye. yani bu seçeneklerle henüz sonuca ulaşamadım. klasik yolla yapıyorum ama ondada dalgınlıkla nokta, virgül değişebiliyor işlemi sil baştan yapabiliyorum. örneklere teşekkürler,
 
Katılım
24 Nisan 2005
Mesajlar
3,680
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
muhasebe programından excele veri aldığımda, binlik ve ondalık ayıraç virgül ve nokta olarak çıkıyor, benim işlem yapabilmem için makro ile virgülü silip, noktayı virgül yapmam gerekiyor, bu durumda excel sayı olarak algılıyor. Elle yapılıyor ama zaman alıyor. makro olursa diğer makroya monte ederek işlemi çabuklaştıracağım , teşekkürler

Resim yerine örnek excel dosyası paylaşır mısınız?
 
Katılım
24 Nisan 2005
Mesajlar
3,680
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Katılım
24 Nisan 2005
Mesajlar
3,680
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Özel işlemleri kullanmak uygun değil ise, aşağıdaki kodu kullanabilir siniz.

Kod:
Sub onluk_virgul_ondalik_nokta()
   sonsatir = Cells(Rows.Count, "A").End(3).Row
   Range("C2:D" & sonsatir).Select
   ondalikstr = Application.International(xlDecimalSeparator)
   For Each hucre In Selection
      txt = hucre.Text
      txt = Replace(txt, ",", "v")
      txt = Replace(txt, ".", ",")
      txt = Replace(txt, "v", ".")
      If ondalikstr = "," Then
         hucre.NumberFormat = "@"
         hucre.Value = CStr(txt)
      End If
      If ondalikstr = "." Then
         hucre.NumberFormat = "#,##0.00"
         hucre.Value = 0 + txt
      End If
   Next
End Sub
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Alternatif kod

Kod:
Sub noktavirgulduzelt5()


son = Application.Calculation '-4105
'MsgBox Application.Calculation '-4135

With Application
.Calculation = xlManual '-4135
.ScreenUpdating = False
.EnableEvents = False
End With

Dim cell As Range

nokta = "."
virgul = ","

For Each cell In ActiveWindow.RangeSelection.Cells

deg3 = Split(cell.Value, nokta)
deg4 = Split(cell.Value, virgul)

hucre = cell.NumberFormat
If IsDate(cell.Value) = True Then GoTo atla2

cell.NumberFormat = "@"

If UBound(deg3) > 0 And UBound(deg4) > 0 Then

cell.Value = Trim(Replace(Replace(cell.Value, nokta, "[#]"), virgul, "[&]"))
End If

deg5 = Split(cell.Value, "[#]")
deg6 = Split(cell.Value, "[&]")

If UBound(deg5) > 0 And UBound(deg6) > 0 Then

cell.Value = Trim(Replace(cell.Value, "[#]", virgul))
GoTo atla
End If


atla2:
 


atla:
cell.NumberFormat = hucre
Next

With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = son
End With


End Sub
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Katılım
24 Nisan 2005
Mesajlar
3,680
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
eklentiyi yüklediğimde her markolu dosya açılışta hata veriyor
Open path & fileName For Output Access Write as hFile şeklinde
Eklenti Module3 içinde Üst menuye Özel İşlemler Menüsü eklemeye çalışıyor.
Bu klasöre yazmaya çalışıyor

path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"

Kodun içinden bu bölümü iptal edebilir siniz.
Yazma hakkı ile ilgili bir sorun olabilir.

ribbonXML = Replace(ribbonXML, """", "")

Open path & fileName For Output Access Write As hFile
Print #hFile, ribbonXML
Close hFile
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Bu kod seçili alanı sayıya çeviriyor.
Kod:
Sub noktavirgulduzelt6()


son = Application.Calculation '-4105

With Application
.Calculation = xlManual '-4135
.ScreenUpdating = False
.EnableEvents = False
End With
Dim cell As Range
nokta = "."
virgul = ","
For Each cell In ActiveWindow.RangeSelection.Cells
cell.Value = Trim(cell.Value)

If Mid(Right(cell.Value, 3), 1, 1) = nokta Then
yer = Mid(cell.Value, 1, Len(cell.Value) - 3)
deg9 = Replace(yer, virgul, nokta) & virgul & Mid(Right(cell.Value, 3), 2, 3)
cell.Value = Replace(deg9, nokta, "") * 1
Else

If IsNumeric(cell.Value) = True And cell.Value > 0 Then
cell.Value = cell.Value * 1
End If
End If
Next

With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = son
End With

End Sub
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
makro sorunsuz

Bu kod seçili alanı sayıya çeviriyor.
Kod:
Sub noktavirgulduzelt6()


son = Application.Calculation '-4105

With Application
.Calculation = xlManual '-4135
.ScreenUpdating = False
.EnableEvents = False
End With
Dim cell As Range
nokta = "."
virgul = ","
For Each cell In ActiveWindow.RangeSelection.Cells
cell.Value = Trim(cell.Value)

If Mid(Right(cell.Value, 3), 1, 1) = nokta Then
yer = Mid(cell.Value, 1, Len(cell.Value) - 3)
deg9 = Replace(yer, virgul, nokta) & virgul & Mid(Right(cell.Value, 3), 2, 3)
cell.Value = Replace(deg9, nokta, "") * 1
Else

If IsNumeric(cell.Value) = True And cell.Value > 0 Then
cell.Value = cell.Value * 1
End If
End If
Next

With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = son
End With

End Sub
teşekkürler, bu işlemi sorunsuz halletti, kolay gelsin
 
Üst