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
Altın Üyelik Bitiş Tarihi
15.06.2020
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.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
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
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
..Mükerrer gönderilen mesajı sildim..
 
Katılım
8 Aralık 2006
Mesajlar
218
Excel Vers. ve Dili
Excel 2002
Türkçe
Altın Üyelik Bitiş Tarihi
15.06.2020
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.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Mavi renkli B1'i A1 olarak değiştirin, böylece A1'e çift tıklayınca A1 1 artırılır.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
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:

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
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
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,006
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ö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
 
Katılım
28 Şubat 2011
Mesajlar
605
Excel Vers. ve Dili
2010 - Türkçe - Win10 x64
bu işi geliştirici sekmesinden yön tuşu ekleyerek yapabilirsiniz. makro kullanmadan.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Ö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.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,006
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
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.
 
Katılım
8 Aralık 2006
Mesajlar
218
Excel Vers. ve Dili
Excel 2002
Türkçe
Altın Üyelik Bitiş Tarihi
15.06.2020
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.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,006
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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
 
Katılım
8 Aralık 2006
Mesajlar
218
Excel Vers. ve Dili
Excel 2002
Türkçe
Altın Üyelik Bitiş Tarihi
15.06.2020
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.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,006
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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.
 
Katılım
8 Aralık 2006
Mesajlar
218
Excel Vers. ve Dili
Excel 2002
Türkçe
Altın Üyelik Bitiş Tarihi
15.06.2020
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.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,006
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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
 
Katılım
8 Aralık 2006
Mesajlar
218
Excel Vers. ve Dili
Excel 2002
Türkçe
Altın Üyelik Bitiş Tarihi
15.06.2020
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ü.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,006
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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.
 
Üst