Soru Userform ile mükerrer kayıtları sil

Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Altın Üyelik Bitiş Tarihi
07-02-2024
Kod:
Sub RemoveDuplicateRows()
Dim MyRange As Range
Dim LastRow As Long

LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
Set MyRange = ActiveSheet.Range("A1:D" & LastRow)
MyRange.RemoveDuplicates Columns:=3, Header:=xlYes
End Sub
Merhaba arkadaşlar.
Buradaki algoritma ile; A ile D sütunları aralığındaki kayıtlardan 3.sütun (C sütunu) referans alınarak mükerrer kayıtları siliyor.
Amacım burada tanımlanan sütun başlıklarını textbox lar ile döngüye alıp kodu çalıştırmak.
Yardımlarınızı rica ediyorum.
 

Ekli dosyalar

Korhan Ayhan

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

Kod:
Private Sub CommandButton1_Click()
    Dim Alan As Range, Son_Satir As Long
    
    If TextBox1 = Empty Then
        MsgBox "Lütfen ilk sütun bilgisini giriniz.", vbExclamation
        TextBox1.SetFocus
        Exit Sub
    End If
    
    If TextBox2 = Empty Then
        MsgBox "Lütfen son sütun bilgisini giriniz.", vbExclamation
        TextBox2.SetFocus
        Exit Sub
    End If
    
    If TextBox3 = Empty Then
        MsgBox "Lütfen hedef sütun bilgisini giriniz.", vbExclamation
        TextBox3.SetFocus
        Exit Sub
    End If
    
    With ActiveSheet
        Son_Satir = .Cells.Find("*", .Cells(1, 1), , , xlByRows, xlPrevious).Row
        Set Alan = .Range(TextBox1 & "1:" & TextBox2 & Son_Satir)
        Alan.RemoveDuplicates Columns:=.Range(TextBox3 & 1).Column, Header:=xlYes
    End With
End Sub
 
Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Altın Üyelik Bitiş Tarihi
07-02-2024
Deneyiniz.

Kod:
Private Sub CommandButton1_Click()
    Dim Alan As Range, Son_Satir As Long
  
    If TextBox1 = Empty Then
        MsgBox "Lütfen ilk sütun bilgisini giriniz.", vbExclamation
        TextBox1.SetFocus
        Exit Sub
    End If
  
    If TextBox2 = Empty Then
        MsgBox "Lütfen son sütun bilgisini giriniz.", vbExclamation
        TextBox2.SetFocus
        Exit Sub
    End If
  
    If TextBox3 = Empty Then
        MsgBox "Lütfen hedef sütun bilgisini giriniz.", vbExclamation
        TextBox3.SetFocus
        Exit Sub
    End If
  
    With ActiveSheet
        Son_Satir = .Cells.Find("*", .Cells(1, 1), , , xlByRows, xlPrevious).Row
        Set Alan = .Range(TextBox1 & "1:" & TextBox2 & Son_Satir)
        Alan.RemoveDuplicates Columns:=.Range(TextBox3 & 1).Column, Header:=xlYes
    End With
End Sub
Çok teşekkürler Korhan hocam, sorunsuz çalıştı.
Küçük bir ilave mümkün olurmu.
Silinen mükerrer kayıt sayısını bir labelde gösterebilirmisiniz.
 

Korhan Ayhan

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

Kod:
Private Sub CommandButton1_Click()
    Dim Alan As Range, Son_Satir As Long, Kayit_Sayisi As Long
    
    If TextBox1 = Empty Then
        MsgBox "Lütfen ilk sütun bilgisini giriniz.", vbExclamation
        TextBox1.SetFocus
        Exit Sub
    End If
    
    If TextBox2 = Empty Then
        MsgBox "Lütfen son sütun bilgisini giriniz.", vbExclamation
        TextBox2.SetFocus
        Exit Sub
    End If
    
    If TextBox3 = Empty Then
        MsgBox "Lütfen hedef sütun bilgisini giriniz.", vbExclamation
        TextBox3.SetFocus
        Exit Sub
    End If
    
    With ActiveSheet
        Son_Satir = .Cells.Find("*", .Cells(1, 1), , , xlByRows, xlPrevious).Row
        Set Alan = .Range(TextBox1 & "1:" & TextBox2 & Son_Satir)
        Alan.RemoveDuplicates Columns:=.Range(TextBox3 & 1).Column, Header:=xlYes
        Kayit_Sayisi = Son_Satir
        Son_Satir = .Cells.Find("*", .Cells(1, 1), , , xlByRows, xlPrevious).Row
        Label4.Caption = "Silinen Mükerrer Kayıt Sayısı = " & Format(Kayit_Sayisi - Son_Satir, "#,##0")
    End With
End Sub
 
Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Altın Üyelik Bitiş Tarihi
07-02-2024
Deneyiniz.

Kod:
Private Sub CommandButton1_Click()
    Dim Alan As Range, Son_Satir As Long, Kayit_Sayisi As Long
   
    If TextBox1 = Empty Then
        MsgBox "Lütfen ilk sütun bilgisini giriniz.", vbExclamation
        TextBox1.SetFocus
        Exit Sub
    End If
   
    If TextBox2 = Empty Then
        MsgBox "Lütfen son sütun bilgisini giriniz.", vbExclamation
        TextBox2.SetFocus
        Exit Sub
    End If
   
    If TextBox3 = Empty Then
        MsgBox "Lütfen hedef sütun bilgisini giriniz.", vbExclamation
        TextBox3.SetFocus
        Exit Sub
    End If
   
    With ActiveSheet
        Son_Satir = .Cells.Find("*", .Cells(1, 1), , , xlByRows, xlPrevious).Row
        Set Alan = .Range(TextBox1 & "1:" & TextBox2 & Son_Satir)
        Alan.RemoveDuplicates Columns:=.Range(TextBox3 & 1).Column, Header:=xlYes
        Kayit_Sayisi = Son_Satir
        Son_Satir = .Cells.Find("*", .Cells(1, 1), , , xlByRows, xlPrevious).Row
        Label4.Caption = "Silinen Mükerrer Kayıt Sayısı = " & Format(Kayit_Sayisi - Son_Satir, "#,##0")
    End With
End Sub
Tekrar teşekkürler. Kod çalışıyor.
 
Üst