Tekrar eden veriyi bulmada hata

Katılım
11 Mayıs 2022
Mesajlar
6
Excel Vers. ve Dili
türkçe 32 bit
Herkese Merhaba;
Aşağıda yazmış olduğum kod ilgili sayfadayken çalışıyor fakat başka bir sayfa üzerinden kodu tetiklediğimde 1004 hatası alıyorum. (Application-defined or object-defined error)

Nerede hata yapıyorum acaba ? Veri sayfasında B sütunundaki tekrar edenlerin sayısını öğrenmek istiyorum ama kod sadece veri sayfası açıkken yapıyor bunu diğer sayfaya geçip makroyu çalıştırdığımda hata veriyor. Bunun dışında farklı bir yöntem ile yapabilir miyiz ?

Kod:
Sub sayfadacalisiyor()
ss = Sheets("veri").Range("B10000").End(xlUp).Row
a = 0
b = 0
c = 0

For i = 2 To ss





a = WorksheetFunction.CountIf(Sheets("veri").Range(Cells(i, 2), Cells(ss, 2)), Cells(i, 2))

If a > 1 Then
b = b + 1
End If


Next
MsgBox b

End Sub
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,
Countif içindeki aralıkların tümü veri sayfası olacak sanırım.
Kod:
Sub test()

    Set S1 = Sheets("veri")
    
    ss = S1.Range("B10000").End(xlUp).Row
    
    a = 0
    b = 0
    c = 0
    
    For i = 2 To ss
        a = WorksheetFunction.CountIf(S1.Range(S1.Cells(i, 2), S1.Cells(ss, 2)), S1.Cells(i, 2))
        If a > 1 Then
            b = b + 1
        End If
    Next
    MsgBox b

End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,253
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

"a" değişkenini hesaplarken kullandığınız RANGE parantezi içinde de sayfa adını belirtmeniz gerekiyor. Alternatif olarak aşağıdaki gibi deneyiniz.

C++:
Sub sayfadacalisiyor()
    With Sheets("veri")
        ss = .Range("B10000").End(xlUp).Row
        a = 0
        b = 0
        c = 0
        
        For i = 2 To ss
            a = WorksheetFunction.CountIf(.Range(.Cells(i, 2), .Cells(ss, 2)), .Cells(i, 2))
        
            If a > 1 Then
                b = b + 1
            End If
        Next
    End With
    
    MsgBox b
End Sub
 
Katılım
11 Mayıs 2022
Mesajlar
6
Excel Vers. ve Dili
türkçe 32 bit
Merhaba,
Countif içindeki aralıkların tümü veri sayfası olacak sanırım.
Kod:
Sub test()

    Set S1 = Sheets("veri")
   
    ss = S1.Range("B10000").End(xlUp).Row
   
    a = 0
    b = 0
    c = 0
   
    For i = 2 To ss
        a = WorksheetFunction.CountIf(S1.Range(S1.Cells(i, 2), S1.Cells(ss, 2)), S1.Cells(i, 2))
        If a > 1 Then
            b = b + 1
        End If
    Next
    MsgBox b

End Sub
Teşekkürler çalıştı :)


Merhaba,

"a" değişkenini hesaplarken kullandığınız RANGE parantezi içinde de sayfa adını belirtmeniz gerekiyor. Alternatif olarak aşağıdaki gibi deneyiniz.

C++:
Sub sayfadacalisiyor()
    With Sheets("veri")
        ss = .Range("B10000").End(xlUp).Row
        a = 0
        b = 0
        c = 0
       
        For i = 2 To ss
            a = WorksheetFunction.CountIf(.Range(.Cells(i, 2), .Cells(ss, 2)), .Cells(i, 2))
       
            If a > 1 Then
                b = b + 1
            End If
        Next
    End With
   
    MsgBox b
End Sub
Teşekkürler çalıştı :)
 
Üst