• DİKKAT

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

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
 
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
 
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
 
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ı :)
 
Geri
Üst