• DİKKAT

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

hücredeki sayıyı tıklayarak arttırma

Katılım
8 Aralık 2006
Mesajlar
218
Excel Vers. ve Dili
Excel 2002
Türkçe
herhangi bir hücrede, diyelimki 5 sayısı var.bu hücreye her seferinde tek veya çift tıklandığında mevcut sayının birer birer artmasını istiyorum.bunun için ne yapılabilir? formdan arama yaptıdım benzer konular var fakat istediğim gibi örnek bulamadım.
 
Merhaba.
Aşağıdaki kod ile B1 hücresine çift tık ile A1 değeri 1 artırılır.
(Kod'u sayfa ismine fareyle sağ tıklayıp "Kod Görüntüle"yi seçtiğinizde karşınıza gelecek ekranın sağ tarafındaki boş alana yapıştırınız.)

Gerek çift tıklanacak hücre adını ( B1 ) ve gerekse de değeri değiştirilecek hücre adını değiştirebilirsiniz elbette.
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [[COLOR="blue"][B]B1[/B][/COLOR]]) Is Nothing Then Exit Sub
Range("[B][COLOR="red"]A1[/COLOR][/B]") = Range("[B][COLOR="Red"]A1[/COLOR][/B]") + 1
End Sub
 
hocam hızlı cevap için teşekkürler.ben arttırma işini ve tıklama işini aynı hücrede yapmak isiyorum.yani sayımız a1 hücresinde ise a1 hücresine her tıklandığında(tek yada çift)yine a1 hücresindeki sayının artmasını istiyorum.ayrıca bu özelliği birden fazla hücreye vermem gerekiyor.
 
Mavi renkli B1'i A1 olarak değiştirin, böylece A1'e çift tıklayınca A1 1 artırılır.
 
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [[COLOR="Red"]A1[/COLOR]]) Is Nothing Then Exit Sub
Range("[COLOR="red"]A1[/COLOR]") = Range("[COLOR="red"]A1[/COLOR]") + 1

End Sub
Kodu yukarıdaki gibi kullanabilirsiniz.
Ayrıca 2 artırmak için +1'i +2 olarak değitirmeniz gerekir.
Hücre adlarını istediğiniz gibi değiştirebilirsiniz.
 
Son düzenleme:
Bir'den fazla hücrede uygulamak için ise aşağıdaki gibi kullanabilirsiniz.
Aşağıdaki örnekte C1 2 artırılır, A1 ve E7 1 artırılır.
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [[COLOR="Red"]A1[/COLOR], [COLOR="blue"]C1[/COLOR], [COLOR="DarkOrange"]E7[/COLOR]]) Is Nothing Then Exit Sub

If Target.Address = "$A$1" Then
Range("[COLOR="red"]A1[/COLOR]") = Range("[COLOR="red"]A1[/COLOR]") + [COLOR="red"]1[/COLOR]
End If

If Target.Address = "$C$1" Then
Range("[COLOR="Blue"]C1[/COLOR]") = Range("[COLOR="blue"]C1[/COLOR]") + [COLOR="blue"]2[/COLOR]
End If

If Target.Address = "$E$7" Then
Range("[COLOR="DarkOrange"]E7[/COLOR]") = Range("[COLOR="DarkOrange"]E7[/COLOR]") + 1
End If

End Sub
 
Ömer Bey,

Sayfa kodlarında "If Intersect" ile tanımlama yaptığınızda verdiğiniz koddaki gibi hücrenin Address özelliğini kullanmanıza gerek yok. Tanımlamadan sonra işlem yapacağınız hücreler artık TARGET olarak değerlendirilir.

Yani kodu aşağıdaki gibi kullanabilirsiniz.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [A1, C1, E7]) Is Nothing Then Exit Sub
Cancel = True
Target = Target + 1
End Sub
 
bu işi geliştirici sekmesinden yön tuşu ekleyerek yapabilirsiniz. makro kullanmadan.
 
Ömer Bey,
Sayfa kodlarında "If Intersect" ile tanımlama yaptığınızda verdiğiniz koddaki gibi hücrenin Address özelliğini kullanmanıza gerek yok. Tanımlamadan sonra işlem yapacağınız hücreler artık TARGET olarak değerlendirilir.
Eyvallah, sağ olunuz.
Öğreneceğiz işte yavaş yavaş.
Yazdığınız kod'u ve açıklamayı, benim gönderdiğim ilk kod için tamam ve anladım.

Peki hücrelerden birini (son gönderdiğim koddaki C1) 2 artırma işi nasıl olacak acaba?
Tabi sorma maksadım kısa kod oluşturmak.
 
Tanımlanan hücre için koşul eklemek gerekir. Aşağıdaki gibi kullanabilirsiniz.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, [A1, C1, E7]) Is Nothing Then Exit Sub
    Cancel = True
    Select Case Target.Address(0, 0)
        Case "C1"
            Target = Target + 2
        Case Else
            Target = Target + 1
    End Select
End Sub
 
Tanımlanan hücre için koşul eklemek gerekir. Aşağıdaki gibi kullanabilirsiniz.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, [A1, C1, E7]) Is Nothing Then Exit Sub
    Cancel = True
    Select Case Target.Address(0, 0)
        Case "C1"
            Target = Target + 2
        Case Else
            Target = Target + 1
    End Select
End Sub
Teşekkürler Sayın AYHAN öğrenme sürecinde olunca böyle basit şeyleri de soruyoruz işte, kusura bakmayınız. Tabi verdiğiniz cevap, benim açımdan yeni soru doğuruyor (Case kavramını görmüş oldum) ama yavaş yavaş araştırarak gitmem lazım tabiiki. Sağ olunuz.
 
mesajdan sonra fazla vaktim olmadığı için ayrıntılı bakamamıştım cevaplara.tüm cevaplara teşekkürler.verilenleri kendi listeme uyguladım mükemmel çalışıyor.birde eğer imkan varsa hücreye tek tıklama ilede sayıyı arttırma imkanımız varmı? hem bilgi olarak, kullanışlı olursa listemdede kullanmak istiyorum.
 
Hücreye tek tıklama yöntemiyle de yapılabilir. Fakat aynı hücre üzerinde tıklama yaptığınızda sorun yaşarsınız. Bu sebeple çift tıklama ile çözüm önerilmiştir.

Tek tıklama ile değer girmek için aşağıdaki kodu kullanabilirsiniz. Fakat seçim yaptıktan sonra aynı hücreye tekrar değer eklemek için başka bir hücreyi seçmeniz gerekecektir.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Intersect(Target, [A1, C1, E7]) Is Nothing Then Exit Sub
    Target = Target + 1
End Sub
 
söylediğiniz gibi tek tıklamalı bu haliyle sorunlu görünüyor.çünkü nereye tıklanırsa tıklansın hep bir arttırıyor.o yüzden çift tıklamalı daha kullanışlı gibi.
 
Nereye tıklanırsa bir arttırmaz. Yanlış bir uygulama yapmışsınızdır.

Fakat kullanışlı değildir. Düzgün çalışması için her seçimden sonra aktif hücreyi tanımlı alan dışında bir hücreye yönlendirmek gerekiyor.
 
Nereye tıklanırsa bir arttırır derken tanımlı hücreleri kast etmiştim.şöyleki tanımlı hücre a1 olsun fakat bu hücrede herhangi bir sayı olmasın.a1 hücresine tık yapıldığında 1 sayısı çıkıyor.bu tabiki doğal bir sonuç.acaba şu şekilde düzenlenebilirmi ? tanımlı hücrelerde sayı olup olmadığı ayrımı yapılabilirmi? yani tanımlı hücrede herhangi bir sayı varsa üzerine tek tıklandığı zamam sayı bir artsın,hücrede herhangi bir sayı yoksa üzerine tıklansada sayı saymaya başlamasın.
 
Bu şekilde deneyin...

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Intersect(Target, [A1, C1, E7]) Is Nothing Then Exit Sub
    If Target <> "" And IsNumeric(Target) Then Target = Target + 1
End Sub
 
hocam tek kelimeyle mükemmel.tam istediğim gibi çalışıyor.emeğine sağlık.
hocam bu kodların kaynağı nerde?ben elektronik sektöründeyim.yazılım bilgim var. verdiğiniz kodlar, elektronik yazılımda kullandığım basic diline çok benziyor çünkü.
 
Kodların kaynağı Visual Basic kodlarıdır. Ofis kurulumunda bilgisayarınıza yüklenir. Fonksiyonların ve temel özelliklerin yetersiz kaldığı durumlarda eğer kodlama bilginiz varsa makroları kullanarak çalışmalarınızı daha işlevsel hale getirebilirsiniz.
 
Geri
Üst