döngü ile alınan rakamları toplamak

Makrolar ve Basic programlama dili özel bölümü
Cevapla
Aslofke
Mesajlar: 26
Kayıt: 05 Şub 2018, 14:41
İşletim Sisteminiz: Windows
LibreOffice Sürümü: 5.1.5.2

döngü ile alınan rakamları toplamak

Mesaj gönderen Aslofke »

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
Kullanıcı avatarı
Hamurcu
Mesajlar: 266
Kayıt: 06 Ağu 2012, 00:14
İşletim Sisteminiz: Windows 10/11 - Pardus Linux
LibreOffice Sürümü: 7.x

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

Mesaj gönderen Hamurcu »

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.
Cevapla