döngü ile alınan rakamları toplamak

Makrolar ve Basic programlama dili özel bölümü

döngü ile alınan rakamları toplamak

#2415 İleti | Aslofke | 20 Arl 2018, 23:35

deger="0005382184935"

sayisaldeger =mid(deger,3, 10)
msgbox cstr(val(sayisaldeger)+1)
kno=2
sal =1
for kno= 0 to 8
kno = kno +1
sal= kno+1
cift= val(mid(sayisaldeger,sal ,1))
topla =cstr((cift) + (cift))
msgbox cift ' bu satırda sırası ile 5 ,8,1 diye rakamları tek tek gösteriyor
next kno

msgbox cift '
msgbox topla

for döngüsü ile alınan rakamları toplamak istiyorum döngü içinde rakamları tek tek gösteriyor ancak döngü sonunda 3 topla ile de 6 döndürüyor, bu rakamları toplamak için nasıl yol izlemeliyim
Aslofke
 
İleti: 22
Kayıt: 05 Şub 2018, 14:41
İşletim Sisteminiz: Windows
LibreOffice Sürümü: 5.1.5.2

Re: döngü ile alınan rakamları toplamak

#2417 İleti | Hamurcu | 21 Arl 2018, 10:00

Merhaba,

Anladığım kadarıyla "00r89g30q0597834A78B85e8678h876" gibi bir metnin içindeki rakamları toplamak istiyorsun ve bunu da tablo içerisinde sanki bir Calc makrosuymuş gibi kullanmak istiyorsun.

Aşağıda işini görebilecek ufak bir fonksiyon yazdım.

Kullanımı şöyle;
Kod: Tümünü seç
=RAKAMLARITOPLA("000345J3434KJL5KJ546H3ds89987sdf6sd0")


Kod;
Kod: Tümünü seç
Function RakamlariTopla (Bilgi As String) As Long

   Dim Toplam As Long
   Dim KarakterNo As Long
   
   Toplam = 0
   
   For KarakterNo=1 To Len(Bilgi)
     Toplam=Toplam+Val(Mid(Bilgi,KarakterNo,1))
   Next KarakterNo
   
   RakamlariTopla=Toplam

End Function


İyi çalışmalar.
Kullanıcı avatarı
Hamurcu
 
İleti: 171
Kayıt: 06 Ağu 2012, 00:14
Konum: İstanbul
İşletim Sisteminiz: Windows 10
LibreOffice Sürümü: 6.x


Makrolar ve Basic

Kimler çevrimiçi

Kayıtlı kullanıcılar: Bing [Bot], Google [Bot], Yandex [Bot]