• DİKKAT

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

+ rakamların sayısı

Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba
Örneğin B2 hücresinde sayısal rakamları topluyorum =65+48+75,3+82,1 gibi, B1 hücresinde de kaç farklı sayı olduğunu bilmek istiyorum. Yazdığım rakamlar 4 ayrı rakam. Yani B1 hücresinde 4 yazmasını istiyorum. Makro ile nasıl yapıla bilinir.
 
İlk akla gelenler aşağıda; kolay gelsin..

sub Artı_adedi()

b2f = cells(2,b).formula
lb2 = len(b2f)
s_a = 0
for k = 1 to lb2
if mid(k,b2f,1)="+" then
s_a = s_a + 1
endif
next k
msgbox " B2 hücresinde Artı işareti adedi : " & s_a
end sub
 
Merhaba,

Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayıp deneyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [B2]) Is Nothing Then Exit Sub
    If Target.Value = "" Then Exit Sub
    Dim i As Integer
    Dim x As String
    Dim s
    x = Target.Formula
    x = Replace(Replace(Replace(x, "-", "+"), "*", "+"), "/", "+")
    s = Split(x, "+")
    [B1] = UBound(s) + 1
End Sub
 
Merhaba Necdet Bey,
İlginiz için teşekkür ederim tam istediğim gibi bir kod yazmışsınız elinize sağlık. Fakat benim kullanacağım sayfa çok geniş. Özür dilerim ben örnek mahiyetinde B2 hücresi yazdım. Çalışma sayfam normalde şu şekilde toplamları sayıyor.
E, G, I, O, Q, S, Y, AA, AC, AI, AK, AM, AS, AU, AW, BC sütunlarına =5+9+19,5 gibi rakamları giriyorum.
Örneğin E252 girilen rakamı, D252 saymasını sağlayabilir miyiz? Yani girilen rakam hangi hücredeyse bir önceki sütunun yan hücresinde sayı yazması gerekiyor.
İlginiz için tekrardan teşekkür ederim.
 
Merhaba,

Kodları örnek olarak vermiştim, sütunlara uyarlamayı yaparsınız diye düşünmüştüm.

Aşağıdaki gibi kullanabilirsiniz. Diğer sütunları siz ekleyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [E:E, G:G, I:I]) Is Nothing Then Exit Sub
    If Target.Value = "" Then Exit Sub
    Dim i As Integer
    Dim x As String
    Dim s
    x = Target.Formula
    x = Replace(Replace(Replace(x, "-", "+"), "*", "+"), "/", "+")
    s = Split(x, "+")
    Target.Offset(0, -1) = UBound(s) + 1
End Sub
 
Merhaba Nejdet bey,
İlginiz için çok teşekkür ederim. gerçekten çok güzel oldu. Ramazanlıktandır diye herşeyi hesaplayamıyorum. Bir küçük rica da daha bulunacağım. Hücreye girilen rakamları daha sonradan del yapıp, sildiğimizde yan hücreye sayısı gelen adet kalıcı oluyor. Bununda delete yapılıp silindiğinde, silinmesini sağlayabilirmiyiz.

Bir kusurum olduysa af ola diyorum. herşey için gönülden teşekkürlerimi sunarım.

Hayırlı iftarlar dilerim.
 
Merhaba,

Aşağıdaki gibi deneyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [E:E, G:G, I:I]) Is Nothing Then Exit Sub
    Dim i As Integer
    Dim x As String
    Dim s
    If Target.Value = "" Then
        Target.Offset(0, -1) = ""
    Else
        x = Target.Formula
        x = Replace(Replace(Replace(x, "-", "+"), "*", "+"), "/", "+")
        s = Split(x, "+")
        Target.Offset(0, -1) = UBound(s) + 1
    End If
End Sub
 
Merhaba Necdet Bey,
Günaydın Hayırlı sabahlar, Ramazanlık ta sizi yordum hakkınızı helal edin lütfen. Yaptığınız çalışmada, hem çalışmamda bana kolaylık. Hem de adetlerde her zaman sorun yaşıyordum. Bu sayede, bu sorunları ortadan kaldırmış oluyoruz. İlgi ve alakanız için teşekkür ederim. Hayırlı Ramazanlar dilerim.


Saygılarımla.
 
Merhaba Necdet Bey,
Günaydın Hayırlı sabahlar, Ramazanlık ta sizi yordum hakkınızı helal edin lütfen. Yaptığınız çalışmada, hem çalışmamda bana kolaylık. Hem de adetlerde her zaman sorun yaşıyordum. Bu sayede, bu sorunları ortadan kaldırmış oluyoruz. İlgi ve alakanız için teşekkür ederim. Hayırlı Ramazanlar dilerim.


Saygılarımla.

Merhaba,

Güle güle kullanınız da şu "ilgi ve alaka" sözcüklerini bir arada kullanmasanız sevinirim ikisininde anlamı aynı.

Sanırım 1980 li yıllarda Müjdat Gezen hem Türkçe hemde Türkçe olmayan sözcükleri bir arada kullananları eleştirmek için kullanmıştı.

Sonra bu toplumda alışkanlık haline geldi, millet anlamını bilmeden kullanır oldu.

Lütfen güzelim Türkçemize bu kötülüğü yapmayalım.
 
Merhaba
Bu konuda da aydınlattığınız için tekrardan teşekkür ederim. Gerçekten haklısınız.
İyi çalışmalar dilerim.
 
Geri
Üst