• 19-03-2025, 15:54:27
    #1
    Merhaba. İstediğim herhangi rakam olabilir bu milyar ve s bunu rakama çevirmek istiyorum. ChatGPT ve Grok saçma makro kodu yazdı. Ya Ben soruyu doğru sormuyorum ya da o doğru cevaplamıyor. Ayrıca Azerbaycan Türkçesinde yazılacak rakamlar. Aslında denedim olmadı denedim olmadı excel number to text diye Google'da arattım ve bir makro kodu bulup ChatGPT'ye yeniden yapıştırıp al bu kodun üzerinde uygula dedim. Acaba ücretsiz o yüzden mi saçma cevaplar kodlar üretiyor?

    İnternetten bulup attığım makro kodunda da mesela 1 milyon yazıyorum mesela 1 milyon beş yüz altımış beş mesela, "ş,ç, ü,ö" harflere ya da büyük İ harfini I gibi bazı harfleri de ? işareti koyuyor.
  • 19-03-2025, 16:12:00
    #2
    Sn. Mustafa Bolat'ın bir çalışması vardı bunun için. Bir göz atın isterseniz.

    https://wordpress-528612-2859608.clo...2/10/BYMMB.zip
  • 19-03-2025, 16:46:26
    #3
    Merhabalar.. Yapmanız gerekeni adım adım yazıyorum. Adım adım uygularsanız sorunsuz çevirecektir.

    Birinci adım: Temiz bir excel dosyası açın (Veya var olan çalıştığınız bir dosya üzerinden de devam edebilirsiniz)
    İkinci adım: Geliştirici Sekmesinden Visual Basic Butonuna tıklayın.
    Üçüncü adım: Açılan pencerede üstte bulunan Menüdeki İnsert, oradan açılan menüden ise Module seçeneğine tıklayın.
    Dördüncü adım: Aşağıda verdiğim kodların tamamını oluşturduğunuz modülün içerisine yapıştırın.
    Beşinci adım: Excelde herhangi bir sayfaya giderek A1 hücresine rastgele bi rakam yazın
    Altıncı adım: Aynı sayfada Excel A2 hücresine =Yazı(A1) yazın..

    Sonucu göreceksiniz. İyi çalışmalar.

    Kodlar aşağıdadır.
    Public Function Yazı(AA)
    Dim AAStr As String
    Dim BB As String
    
    If Not IsNumeric(AA) Then GoTo SayiDegil
    
    AAStr = Format(Abs(AA), "0.00")
    
    BB = Left(AAStr, Len(AAStr) - 3)
    
    Yazı = IIf(AA < 0, "Eksi ", "") & Cevir(BB)
    
    Exit Function
    
    SayiDegil:
    Yazı = "GİRİLEN DEĞER SAYI DEĞİL!"
    End Function
    
    Private Function Cevir(SayiStr As String) As String
    Dim Rakam(15)
    Dim c(3), Sonuc, e
    
    Birler = Array("", " bir ", " iki ", " üç ", " dört ", " beş ", " altı ", " yedi ", " sekiz ", " dokuz ")
    Onlar = Array("", " on ", " yirmi ", " otuz ", " kırk ", " elli ", " altmış ", " yetmiş ", " seksen ", " doksan ")
    Binler = Array(" trilyon ", " milyar ", " milyon ", " bin ", "")
    
    SayiStr = String(15 - Len(SayiStr), "0") + SayiStr
    
    For i = 1 To 15
    Rakam(i) = Val(Mid$(SayiStr, i, 1))
    Next i
    
    Sonuc = ""
    For i = 0 To 4
    c(1) = Rakam(i * 3 + 1)
    c(2) = Rakam(i * 3 + 2)
    c(3) = Rakam(i * 3 + 3)
    If c(1) = 0 Then
    e = ""
    ElseIf c(1) = 1 Then
    e = "yüz"
    Else
    e = Birler(c(1)) + "yüz"
    End If
    e = e + Onlar(c(2)) + Birler(c(3))
    If e <> "" Then e = e + Binler(i)
    If (i = 3) And (e = "birbin") Then e = "bin"
    Sonuc = Sonuc + e
    Next i
    
    If Sonuc = "" Then Sonuc = "00"
    
    Cevir = UCase(Mid(Sonuc, 1, 1)) + Mid(Sonuc, 2, Len(Sonuc) - 1)
    End Function