Butona ile hücredeki sayıyı artırma

Katılım
4 Mart 2020
Mesajlar
42
Excel Vers. ve Dili
Excel 2013
Altın Üyelik Bitiş Tarihi
24-08-2023
A1, A2, A3, A4 hücrelerinde isimler var, b1, b2, b3, b4 hücrelerinde ise isimlere ait sayılar var. E1 ve E2 hücrelerinde ise A sütunundaki isimlerden bazıları var, bir buton ekleyip butona bastığım zaman E1 ve E2 hücrelerinde yazan isimleri A sütununda bulup karşısında yani B sütununda yazan sayıyı bir artıracak, böyle bir makro yazabilirmiyiz yardımlarınız için şimdiden teşekkür ederim
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki makroyu kullanabilirsiniz:

PHP:
Sub ekle()
For Each hucre In [A1:A4]
    If WorksheetFunction.CountIf([E1:E2], hucre.Value) > 0 Then
        hucre.Offset(0, 1) = hucre.Offset(0, 1) + 1
    End If
Next
End Sub
 
Katılım
4 Mart 2020
Mesajlar
42
Excel Vers. ve Dili
Excel 2013
Altın Üyelik Bitiş Tarihi
24-08-2023
End If without Block If
Diye bir hata mesajı geldi
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Kodları eksik kopyalamışsınızdır. Bende sorunsuz çalışıyor.
 
Katılım
4 Mart 2020
Mesajlar
42
Excel Vers. ve Dili
Excel 2013
Altın Üyelik Bitiş Tarihi
24-08-2023
Kodları eksik kopyalamışsınızdır. Bende sorunsuz çalışıyor.
Sizin yazdığınız kod a ve e hücrelerindeki verileri karşılaştırıp eğer veriler uyuşuyorsa b hücresindeki sayıyı 1 artırıyor demi hocam,
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Dosyayı hatalı haliyle paylaşır mısınız?
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
İyi çalışmalar.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Günaydın. İlk mesajınıza ve örnek dosyanıza göre neden olmadığını açıklamaya çalışayım:

A1, A2, A3, A4 hücrelerinde isimler var, b1, b2, b3, b4 hücrelerinde ise isimlere ait sayılar var.
Kodun For Each hucre In [A1:A4] kısmı isteğiniz üzere A1:A4 aralığını dikkate alıyor. Gönderdiğiniz dosyada ise verileriniz A1:A4 arasında değil A4:A9 arasında.

E1 ve E2 hücrelerinde ise A sütunundaki isimlerden bazıları var,
Kodun If WorksheetFunction.CountIf([E1:E2], hucre.Value) > 0 Then kısmı da bu isteğiniz karşılıyor. Gönderdiğiniz dosyada E1 hücresinde Nöbet listesi, E2 hücresinde ise Nizamiye ifadesi var. E sütununun kalanında tarihler varken; kontrol edileceğini tahmin ettiğim isimler ise F3:F16 arasında.

bir buton ekleyip butona bastığım zaman E1 ve E2 hücrelerinde yazan isimleri A sütununda bulup karşısında yani B sütununda yazan sayıyı bir artıracak, böyle bir makro yazabilirmiyiz yardımlarınız için şimdiden teşekkür ederim
Kodun tamamı zaten bu işi yapıyor. İlk mesajınızda belirttiğiniz gibi bir dosya hazırlarsanız bu makronun düzgün çalıştığını göreceksiniz.

Kısacası benim verdiğim makro, tam olarak istediğiniz işlemi yapıyor ama siz nedense isteğinizi dosyanıza göre anlatmamış ya da dosyanızı sonradan değiştirmişsiniz.

Dosyanıza göre olması gereken kod aşağıdaki gibidir:

PHP:
Sub recep()
sonA = WorksheetFunction.Max(4, Cells(Rows.Count, "A").End(3).Row)
sonF = WorksheetFunction.Max(4, Cells(Rows.Count, "F").End(3).Row)
For Each hucre In Range("A4:A" & sonA)
    If WorksheetFunction.CountIf(Range("F4:F" & sonF), hucre.Value) > 0 Then
        hucre.Offset(0, 1) = hucre.Offset(0, 1) + 1
    End If
Next
End Sub
Lütfen bundan sonraki sorularınızı asıl dosyanıza göre sorun. Bu konuda söz konusu olmasa da örnek dosyalarınızı asıl dosyanızla aynı yapıda hazırlayın.
 
Son düzenleme:
Katılım
4 Mart 2020
Mesajlar
42
Excel Vers. ve Dili
Excel 2013
Altın Üyelik Bitiş Tarihi
24-08-2023
Günaydın. İlk mesajınıza ve örnek dosyanıza göre neden olmadığını açıklamaya çalışayım:



Kodun For Each hucre In [A1:A4] kısmı isteğiniz üzere A1:A4 aralığını dikkate alıyor. Gönderdiğiniz dosyada ise verileriniz A1:A4 arasında değil A4:A9 arasında o)



Kodun If WorksheetFunction.CountIf([E1:E2], hucre.Value) > 0 Then kısmı da bu isteğiniz karşılıyor. Gönderdiğiniz dosyada E1 hücresinde Nöbet listesi, E2 hücresinde ise Nizamiye ifadesi var. Kontrol E sütununun kalanında tarihler varken kontrol edileceğini tahmin ettiğim isimler ise F3:F16 arasında.



Kodun tamamı zaten bu işi yapıyor. İlk mesajınızda belirttiğiniz gibi bir dosya hazırlarsanız bu makronun düzgün çalıştığını göreceksiniz.

Kısacası benim verdiğim makro tam olarak istediğiniz işlemi yapıyor ama siz nedense isteğinizi dosyanıza göre anlatmamış ya da dosyanızı sonradan değiştirmişsiniz.

Dosyanıza göre olması gereken kod aşağıdaki gibidir:

PHP:
Sub recep()
sonA = WorksheetFunction.Max(4, Cells(Rows.Count, "A").End(3).Row)
sonF = WorksheetFunction.Max(4, Cells(Rows.Count, "F").End(3).Row)
For Each hucre In Range("A4:A" & sonA)
    If WorksheetFunction.CountIf(Range("F4:F" & sonF), hucre.Value) > 0 Then
        hucre.Offset(0, 1) = hucre.Offset(0, 1) + 1
    End If
Next
End Sub
Lütfen bundan sonraki sorularınızı asıl dosyanıza göre sorun. Bu konuda söz konusu olmasa da örnek dosyalarınızı asıl dosyanızla aynı yapıda hazırlayın.
Teşekkür ederim sağolun yardımınız için
 
Üst