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,070
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,070
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,070
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,070
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,070
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
 
Katılım
25 Mart 2024
Mesajlar
6
Excel Vers. ve Dili
Iyi
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
Hocam peki karşılaştırılan isimlerden bir kez varsa 1 iki kez varsa 2 ekleme nasıl yapılabilir
 
Katılım
25 Mart 2024
Mesajlar
6
Excel Vers. ve Dili
Iyi
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
Hocam peki karşılaştırılan isim bir tane ise 1 iki tane ise 2 ekleme nasil yapilabilir
 
Katılım
11 Temmuz 2024
Mesajlar
308
Excel Vers. ve Dili
Excel 2021 Türkçe
Hocam peki karşılaştırılan isim bir tane ise 1 iki tane ise 2 ekleme nasil yapilabilir
Merhaba,


Kod:
Sub ekle()
    Dim eslesme_sayisi As Integer
    For Each hucre In [A1:A4]
        eslesme_sayisi = WorksheetFunction.CountIf([E1:E2], hucre.Value)
        If eslesme_sayisi > 0 Then
            hucre.Offset(0, 1) = hucre.Offset(0, 1) + eslesme_sayisi
        End If
    Next
End Sub
 
Katılım
25 Mart 2024
Mesajlar
6
Excel Vers. ve Dili
Iyi
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.



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.



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.
Hocam vaerilerimiz F3:F16 arasında değilde F2:G100 arasında ise nasıl değişiklik yaparız
 
Katılım
11 Temmuz 2024
Mesajlar
308
Excel Vers. ve Dili
Excel 2021 Türkçe
Hocam vaerilerimiz F3:F16 arasında değilde F2:G100 arasında ise nasıl değişiklik yaparız
Kod:
Sub recep()
    sonA = WorksheetFunction.Max(4, Cells(Rows.Count, "A").End(xlUp).Row)
    sonF = WorksheetFunction.Max(2, Cells(Rows.Count, "F").End(xlUp).Row)
    sonG = WorksheetFunction.Max(2, Cells(Rows.Count, "G").End(xlUp).Row)
    sonFG = WorksheetFunction.Max(sonF, sonG)
    For Each hucre In Range("A4:A" & sonA)
        If WorksheetFunction.CountIf(Range("F2:F" & sonFG), hucre.Value) > 0 Or _
           WorksheetFunction.CountIf(Range("G2:G" & sonFG), hucre.Value) > 0 Then
            hucre.Offset(0, 1) = hucre.Offset(0, 1) + 1
        End If
    Next
End Sub
 
Üst