binlik ayırıcısı ile ayrılan sayıların metne çevirme

Katılım
17 Kasım 2009
Mesajlar
295
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
24-12-2023
merhaba arkadaşlar vba ile a sütununda bulunan binlik ayırıcı ile ayrılan sayıların metne nasıl çevirebiliriz
 

Ekli dosyalar

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
Metne çevirmek ile ne demek istiyorsunuz?

a) Ondalıklı sayıyı yazıya çevirmek,

b) Binlik ayracını kaldırıp, yine sayıyı ondalık ayracı olarak "virgül" yerine "nokta" kullanarak yenilemek

c) Veri biçimini "Sayı" değil, "Metin" olarak değiştirmek,

.
 
Katılım
17 Kasım 2009
Mesajlar
295
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
24-12-2023
tablodaki verilerde binlik ayırıcısı ile 12.500 olarak görünen verilerde ve 12.500 olan sayıyı kopyaladığımda bir text dosyasına yada başka bir yere 12500 şeklinde oluyor. binlik ayırıcısı olmadan 12.500 nokta içinde görünmesini istiyorum.
 

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
Kod:
Range("A1") = Range("A1").Text
.
 
Katılım
17 Kasım 2009
Mesajlar
295
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
24-12-2023
denedim fakat olmadı 12.500 binlik ayrıcı ayrılmış bir tutarı kod ile denediğimde 13 olarak yazıyor 12.500 metin gibi olsun istiyorum.
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
A1 de 12500 yaziyor ve A sütunu bu şekilde sayı olarak devam ediyorsa;
B sütunun seçiniz, Hücre Biçimlendir'den veri tipi olarak Metin seçiniz.
B1 hücresine 12.500 yazınız (noktalı olarak)
B2 hücresini tıklayınız.
Veri>Hızlı Doldur tıklayınız.
İşlem tamamlandı.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hızlı doldur güzel bir uygulama fakat eski versiyonlarda uygulanamıyor.

Alternatif makrolu çözümü deneyebilirsiniz.

C++:
Option Explicit

Sub Number_To_Text()
    Dim Veri As Variant, Son As Long, X As Long, Zaman As Double
  
    Zaman = Timer
  
    Son = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Veri = Range("A1:A" & Son).Value2
  
    ReDim Liste(1 To UBound(Veri), 1 To 1)
  
    For X = LBound(Veri) To UBound(Veri)
        If InStr(Veri(X, 1), ".") = 0 Then
            Liste(X, 1) = FormatNumber(Veri(X, 1), 0)
        Else
            Liste(X, 1) = CStr(Veri(X, 1))
        End If
    Next

    Range("A:A").NumberFormat = "@"
    Range("A1").Resize(UBound(Veri), 1) = Liste
  
    MsgBox "Sayısal veriler binlik ayıraç ile metinsel formata çevrilmiştir." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 
Katılım
17 Kasım 2009
Mesajlar
295
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
24-12-2023
merhaba kodu denedim fakat örnek dosyada userform içinde görüldüğü gibi binlik ayırıcı doğru çeviriyor fakat normal nokta olan sayılarıda değiştirmeye çalışıyor ve bozuyor.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Eklediğiniz dosyadan bir şey anlamadım.

Siz çevirmek istediğiniz verileri içeren örnek dosya paylaşırsanız ve orjinal hali bu ben bu şekle dönüştürmek istiyorum derseniz daha hızlı çözüme ulaşabiliriz.

Mesela aşağıdaki gibi değerler gördüm. Bu benim kafamı karıştırdı.

68.188.21.270
15.6.65.200
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
C sütununu binlik ayraç kullanacak şekilde ayarlamayı denediniz mi?
 
Katılım
17 Kasım 2009
Mesajlar
295
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
24-12-2023
68.188.21.270
15.6.65.200 bu sayılar normal nokta ile ayrılmış olanlar metin gibi
82.600.218.235 bu sayılar binlik ayırıcı ile ayrılmış olan kopyalama yapınca 82600218235 bu sayı şekilde oluyor.

aşağıdaki kodun içine sadece nokta olanları yani 15.6.65.200 gibi metin gibileri dahil etmeden yapsın istiyorum.

Sub Number_To_Text()
Dim Veri As Variant, Son As Long, X As Long, Zaman As Double

Zaman = Timer

Son = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Veri = Range("A1:A" & Son).Value2

ReDim Liste(1 To UBound(Veri), 1 To 1)

For X = LBound(Veri) To UBound(Veri)
Liste(X, 1) = FormatNumber(Veri(X, 1), 0)
Next

Range("A:A").NumberFormat = "@"
Range("A1").Resize(UBound(Veri), 1) = Liste


End Sub
 
Katılım
17 Kasım 2009
Mesajlar
295
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
24-12-2023
örnek olarak eklediğim dönüştür dosyasında modül var onu deneyince anlaşılıyor
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
#7 nolu mesajımdaki kodu revize ettim. Tekrar deneyiniz.
 
Katılım
17 Kasım 2009
Mesajlar
295
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
24-12-2023
çok teşekkür ederim tam istediğim gibi
 
Katılım
20 Aralık 2023
Mesajlar
3
Excel Vers. ve Dili
Excel 365
Selamlar İyi Forumlar. Bende aynı sorunu yaşıyorum, internette çözüm bulamadım. Misal 100.000.000 sayı olarak biçimlendirilmiş veriyi metine çevirdiğimde 10000000 olarak çıkıyor bunu nasıl noktalı haliyle metine çevirebiliriz. Makrolu işlemi yapamadım nasıl çözümleyeceğiz ? Teşekkürler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Formülle verileri elde ettikten sonra sütunu seçin kopyala-özel yapıştır değerleri adımlarını izleyiniz.
 
Üst