Virgülleri Noktaya Dönüştürmek

Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Merhaba Arkadaşlar,
Aralıktaki virgülleri noktaya çevirmek istiyorum. Makroyu hazırlarken çalışıyor ma bitmiş makroyu çalıştırınca dönüşmüyor. Buna çare var mıdır ?

Not : Paylaşım yaparken Markro kodlarını kod formunda yazmak için ne yapmak lazım ? nasıl yazdıysam olmadı :(
Code
Sub DEGISTIR()
Range("A1:A1000").Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
 

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
Halit 3 Hocamın kodları belki işini görür
noktaları virgül, virgülleri nokta yapıyor
Kod:
Sub noktavirgulduzelt()

Range("A1:A1000").Select

With Application

CalcMode = .Calculation

.Calculation = xlCalculationManual

.ScreenUpdating = False

.EnableEvents = False

End With

Dim cell As Range

nokta = "."

virgul = ","

For Each cell In ActiveWindow.RangeSelection.Cells

deg1 = Split(cell.Value, nokta)

deg2 = Split(cell.Value, virgul)

hucre = cell.NumberFormat

cell.NumberFormat = "@"

veri = ""

k = 0

kk = 0

If IsNumeric(cell.Value) = True Then

If UBound(deg1) > 0 Then

For i = 0 To Val(UBound(deg1))

k = k + 1

If k = 1 Then

veri = deg1(i)

Else

veri = veri & virgul & deg1(i)

End If

Next

If UBound(deg1) = 1 Then

cell.Value = veri * 1

Else

cell.Value = veri

End If

ElseIf UBound(deg2) > 0 Then

For i = 0 To Val(UBound(deg2))

kk = kk + 1

If kk = 1 Then

veri = deg2(i)

Else

veri = veri & nokta & deg2(i)

End If

Next

cell.Value = veri

Else

cell.Value = veri

End If

Else

If UBound(deg1) Then

For i = 0 To Val(UBound(deg1))

k = k + 1

If k = 1 Then

veri = deg1(i)

Else

veri = veri & virgul & deg1(i)

End If

Next

cell.Value = veri

End If

If UBound(deg2) Then

For i = 0 To Val(UBound(deg2))

kk = kk + 1

If kk = 1 Then

veri = deg2(i)

Else

veri = veri & nokta & deg2(i)

End If

Next

cell.Value = veri

End If

cell.Value = cell.Value

End If

cell.NumberFormat = hucre

Next

With Application

.ScreenUpdating = True

.EnableEvents = True

.Calculation = CalcMode

End With

End Sub
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,765
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Mesaj yazılan pencerede bulunan üç nokta menüsüne tıklayıp kodlarınızı foruma ekleyebilirsiniz.

217336

Diyelim ki menüden </>Kod yazan seçeneği seçtiniz. Karşınıza aşağıdaki ekran gelecektir. Dilerseniz DİL bölümünden seçim yaparak paylaştığınız kod diline göre seçim yapabilirsiniz.

217339
 
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Merhaba
Halit 3 Hocamın kodları belki işini görür
noktaları virgül, virgülleri nokta yapıyor
Sub noktavirgulduzelt()
Range("A1:A1000").Select
With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
.EnableEvents = False
End With

Dim cell As Range

nokta = "."
virgul = ","

For Each cell In ActiveWindow.RangeSelection.Cells



deg1 = Split(cell.Value, nokta)
deg2 = Split(cell.Value, virgul)

hucre = cell.NumberFormat
cell.NumberFormat = "@"
veri = ""
k = 0
kk = 0
If IsNumeric(cell.Value) = True Then
If UBound(deg1) > 0 Then
For i = 0 To Val(UBound(deg1))
k = k + 1
If k = 1 Then
veri = deg1(i)
Else
veri = veri & virgul & deg1(i)
End If
Next

If UBound(deg1) = 1 Then
cell.Value = veri * 1
Else
cell.Value = veri
End If

ElseIf UBound(deg2) > 0 Then

For i = 0 To Val(UBound(deg2))
kk = kk + 1
If kk = 1 Then
veri = deg2(i)
Else
veri = veri & nokta & deg2(i)
End If
Next
cell.Value = veri
Else
cell.Value = veri
End If

Else

If UBound(deg1) Then
For i = 0 To Val(UBound(deg1))
k = k + 1
If k = 1 Then
veri = deg1(i)
Else
veri = veri & virgul & deg1(i)
End If
Next
cell.Value = veri
End If

If UBound(deg2) Then
For i = 0 To Val(UBound(deg2))
kk = kk + 1
If kk = 1 Then
veri = deg2(i)
Else
veri = veri & nokta & deg2(i)
End If
Next
cell.Value = veri
End If

cell.Value = cell.Value

End If
cell.NumberFormat = hucre
Next

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

End Sub
Numan şamil üstadım desteğin için teşekkür ediyorum. Kodu uygulamadım. Ama çalışması çok uzun sürüyor ve 5 dakikadır bitmedi. Daha kısa bir yöntem olabilir mi !
 

numan şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,231
Excel Vers. ve Dili
Ofis 2013 Türkçe
Ben bilgiayarımda 3000 satıra uyguladım 5-6 sn sürdü
sizin veriler kaç satırlık
 
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Sayılardaki virgülü noktaya veya başka bir karaktere çevirmek mümkün mü ?
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Sayılardaki virgülü noktaya veya başka bir karaktere çevirmek mümkün mü ?
Paylaşılan makrodaki bu iki satırdaki karakterlerle oynayarak istediğiniz değişikliği yapabilirsiniz


nokta = "."

virgul = ","
 
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
bu kod herhalde beni poek sevmedi :)
800 satırda 10 dakikadır dönüp duruyor
ayrıca virgülleri nokta yapmadı
eminim sizde çalışıyordur ama daha pratik bir çözüm olsa daha iyi olur
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,765
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bütün sorunun kaynağı örnek dosya olmaması...
 
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Korhan Ayhan üstadım. Örnek dosya yükledim. İlginize şimdiden çok teşekkürler
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,765
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz. Ben olumlu sonuç aldım.

C++:
Sub Test()
    With Range("A:A")
        .TextToColumns Destination:=.Cells(1, 1), FieldInfo:=Array(1, 2)
        .NumberFormat = "@"
        .Replace ",", " "
        .Replace " ", "."
        .TextToColumns Destination:=.Cells(1, 1), FieldInfo:=Array(1, 2)
    End With
End Sub
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Alternatif :
Kod:
Sub noktayacevir()
With Application
.DecimalSeparator = "."
.UseSystemSeparators = False
End With
End Sub
 
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Teşekkürler üstad leguminosea, elinize sağlık. sağlıcakla kalın
 
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Deneyiniz. Ben olumlu sonuç aldım.

C++:
Sub Test()
    With Range("A:A")
        .TextToColumns Destination:=.Cells(1, 1), FieldInfo:=Array(1, 2)
        .NumberFormat = "@"
        .Replace ",", " "
        .Replace " ", "."
        .TextToColumns Destination:=.Cells(1, 1), FieldInfo:=Array(1, 2)
    End With
End Sub
Üstad mükemmel bir kod, çok çok teşekkür ediyorum, sağlıcakla kaln
 
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Alternatif :
Kod:
Sub noktayacevir()
With Application
.DecimalSeparator = "."
.UseSystemSeparators = False
End With
End Sub
Seyit Tiken üstadım harika bir kod, çok çok teşekkür ediyorum, sağlıcakla kalın
 
Üst