• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

sayıyı yazıya çevirme modül yuvarlama hatası

Katılım
18 Mayıs 2005
Mesajlar
395
Excel Vers. ve Dili
Excel 2019 TR
arkadaşlar örnek dosyada açıklama yaptım. sayılarımı yuvarlanmış olarak topluyorum.
ama excel.web.tr den aldığım vba kodları benim toplamım dışında yazıya çeviriyor. yardımlarınız için teşekürler. bakarsanız sevinirim.
 

Ekli dosyalar

arkadaşlar örnek dosyada açıklama yaptım. sayılarımı yuvarlanmış olarak topluyorum.
ama excel.web.tr den aldığım vba kodları benim toplamım dışında yazıya çeviriyor. yardımlarınız için teşekürler. bakarsanız sevinirim.


Dosyanızın içinde kod yok

Yanlız dosyanızdaki rakamların sonunda görünmeyen değerler olduğundan hatalı sonuç aldığınızı düşünüyorsunuz.

Rakamlar sıfırdan sonra iki basamaklı gözüküyor bu durumda ya basamak sayısını arttıracaksınız yada sıfırdan sonra iki basamaklı sayıya yuvarlıyacaksınız.

Rakamınızın gerçek değeri 1186,056
görünen değer 1186,06
 
doğru yere yazıp yazmadıgımı bılmıyorum ama bana cok ama cok acıl bırs sekılde yardımcı olabılırmısınız.ben " ULKER YUPO SEKERLEME 170GR BEN10 " bu metinde gecen 170 gr ı metinden ayırmak ıstıyorum yanı bunun gibi 40.000 adet urun var ve bunları tek tek yazmak çok zor olacak birkaç formul yazdım ama olmadı.en son buldugum formul bu ama işe yaramadı " =1*PARÇAAL(A5;KAÇINCI(DOĞRU;ESAYIYSA(1*PARÇAAL(A5;SATIR($1:$9);1));0);BAĞ_DEĞ_SAY(1*PARÇAAL(A5;SATIR($1:$9);1)))" çok acil arkadaslar.şimdiden teşekkürler
 
doğru yere yazıp yazmadıgımı bılmıyorum ama bana cok ama cok acıl bırs sekılde yardımcı olabılırmısınız.ben " ULKER YUPO SEKERLEME 170GR BEN10 " bu metinde gecen 170 gr ı metinden ayırmak ıstıyorum yanı bunun gibi 40.000 adet urun var ve bunları tek tek yazmak çok zor olacak birkaç formul yazdım ama olmadı.en son buldugum formul bu ama işe yaramadı " =1*PARÇAAL(A5;KAÇINCI(DOĞRU;ESAYIYSA(1*PARÇAAL(A5;SATIR($1:$9);1));0);BAĞ_DEĞ_SAY(1*PARÇAAL(A5;SATIR($1:$9);1)))" çok acil arkadaslar.şimdiden teşekkürler

Sorunuz konu bütünlüğüne uymuyor

Örnek olarak formun ana sayfasında excele geni başlayanlar başlığına tıklayınız.Daha sonra sol üst yerde yeni konu kamut duğmesini tıklayınız ve açılan penceren sorunuzu yazınız tabi soru başlığınızıda buna göre yazınız.
 
çok tşk ederım halıt bey alakanız ıcın hemen yapıyorum dedıgınız işlemi.kusura bakmayın
 
sayın İhsan ve Halit Hocam,
ilginize teşekür ediyorum. benim anlatmak istediğim Krş hanesi 2 rakam olacak. örnekte verdiğim rakamları incelerseniz 1.098,20 nin %8 altına yazdırıp topluyorum. excelin toplamına bakarsanız ramam ve yüzdesinin toplamı 1.186.06 çıkıyor. aşağıdaki kodlar sanırım İhsan hocamın neden hücrede gördüğünü gördüğü şekilde yazıya çevirmiyor. ben hücredeki olduğu şekilde görmesini istiyorum. teşekürler. kodları ekliyorum.
Function Yaziyla(sayi#)
Dim TL As String
Dim KR As String
Dim i As Integer
Dim virgul1 As Integer
Dim virgul2 As String
Dim cevap As String
Dim yazi As String
Dim say As String
Dim deg1 As String
If sayi# = 0 Then Yaziyla = "": Exit Function
ReDim birler$(10), onlar$(10), basamak$(5)
birler$(0) = "": birler$(1) = "bir"
birler$(2) = "iki": birler$(3) = "üç"
birler$(4) = "dört": birler$(5) = "beş"
birler$(6) = "altı": birler$(7) = "yedi"
birler$(8) = "sekiz": birler$(9) = "dokuz"
onlar$(0) = "": onlar$(1) = "on"
onlar$(2) = "yirmi": onlar$(3) = "otuz"
onlar$(4) = "kırk": onlar$(5) = "elli"
onlar$(6) = "altmış": onlar$(7) = "yetmiş"
onlar$(8) = "seksen": onlar$(9) = "doksan"
basamak$(1) = "": basamak$(2) = "bin"
basamak$(3) = "milyon": basamak$(4) = "milyar"
basamak$(5) = "trilyon"
virgul2 = "": cevap = "": TL = ".TL.": KR = ".Krş."
say = Str$(sayi#)
virgul1 = InStr(1, say, ".")
If virgul1 Then
If Len(Mid(say, virgul1 + 1)) = 1 Then say = say + "0"
say = Right$(say, Len(say) - virgul1)
GoSub cevir
If cevap = "" Then KR = ""
virgul2 = cevap + KR
cevap = ""
say = Left$(Str$(sayi#), virgul1 - 1)
End If
GoSub cevir
If cevap = "" Then TL = ""
Yaziyla = WorksheetFunction.Proper(cevap) + TL + WorksheetFunction.Proper(virgul2)
Exit Function
cevir:
say = String$(3 - (Len(say) - Int(Len(say) / 3) * 3), 48) + say
For i = 1 To Len(say) / 3
deg1 = Mid$(say, Len(say) - i * 3 + 1, 3)
yazi = ""
If Val(Mid$(deg1, 1, 1)) <> 0 Then
If Val(Mid$(deg1, 1, 1)) > 1 Then yazi = birler$(Val(Mid$(deg1, 1, 1)))
yazi = yazi + "yüz"
End If
yazi = yazi + onlar$(Val(Mid$(deg1, 2, 1))) + birler$(Val(Mid$(deg1, 3, 1)))
If yazi <> "" Then
If LCase(yazi) = "bir" And i = 2 Then yazi = ""
cevap = yazi + basamak$(i) + cevap
End If
Next i
If sayi# < 0 Then cevap = "-Eksi-" + cevap
Return
End Function
 
A4 hücresindeki formülü böyle yapıp denermisiniz.

Kod:
=TAVANAYUVARLA(TOPLA(A2:A3);0,01)

Kod:
=SAYIYAÇEVİR(SAYIDÜZENLE(TOPLA(A2:A3);2))
 
halit hocam,
verdiğiniz formüller doğru çalışıyor. ama benim örnek verdiğim rakamlardan çok var. hepsini bu şekilde değiştirmemmi ğerekiyor. vb kodu üzerinde bu düzenlemeyi yapamazmısınız. ilginiz için teşekür ederim. hakkınızı helal edin.
 
halit hocam,
verdiğiniz formüller doğru çalışıyor. ama benim örnek verdiğim rakamlardan çok var. hepsini bu şekilde değiştirmemmi ğerekiyor. vb kodu üzerinde bu düzenlemeyi yapamazmısınız. ilginiz için teşekür ederim. hakkınızı helal edin.


Bu dediğiniz yapılır ama doğru bir çözüm değil rakamların sonlarındaki görünmeyen değerler bir kaçtane verinin toplanmasında bir sıkıntı yapmaz ama binlerce bu türden olan rakamların sonuçta küsüratlardan dolayı farklılıklar olur bunu hiç tavsiye etmem ama illada ben bunu böyle yapmak istiyorum diyorsanız aşağıdaki bölümün yerine

Kod:
say = Right$(say, Len(say) - virgul1)

bunu ekleyiniz.

Kod:
say = Right$(Application.WorksheetFunction.Fixed(sayi, 2), 2)
 
sayın yurttaş,
verdiğiniz bilgi için teşekürler. Allah razı olsun. Sağolun.
 
Geri
Üst