• DİKKAT

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

Combobox a göre satır sil

Kod:
Private Sub ComboBox1_Change()


'Dim rngBul
On Error Resume Next
If ComboBox1.Value = "" Then Exit Sub
With Sheets("Sayfa1")
        'Combobox1'de yazılan değeri, a sütununda aramaya başla
        Set rngBul = .Range("a1:A65000").Find(ComboBox1.Value, Lookat:=xlWhole)
        'Eğer bir tane bile bulursan
        If Not rngBul Is Nothing Then
            TextBox1.Value = .Cells(rngBul.Row, "b")
            TextBox2.Value = .Cells(rngBul.Row, "c")
         End If
         Set rngBul = Nothing
End With
       
End Sub



Private Sub CommandButton1_Click()
On Error Resume Next
Application.ScreenUpdating = False
For i = Range("A" & Rows.Count).End(3).Row To 1 Step -1
    If Cells(i, 1) = ComboBox1.Text And Cells(i, 2) = TextBox1.Text And Cells(i, 3) = TextBox2.Text Then
        Rows(i).Delete
        TextBox1.Text = ""
        TextBox2.Text = ""
        ComboBox1.Text = ""
        ComboBox1.RowSource = "Sayfa1!a1:a" & Sheets("Sayfa1").Range("a65536").End(3).Row
        Exit Sub
    End If
Next i
Application.ScreenUpdating = True
End Sub
 
Çok teşekkür ederim silme işlemi tamam fakat combobox chance olayı bu sefer hata veriyor.
 
Merhaba,

FIND komutu mükerrer kayıtlarda sıkıntı yaratacaktır. Bunun yerine ComboBox nesnesinin seçim sırasını (ListIndex) kullanmanız daha uygun olacaktır.

Kod:
Private Sub ComboBox1_Change()
    If ComboBox1.ListIndex >= 0 Then
        TextBox1 = Sheets("Sayfa1").Cells(ComboBox1.ListIndex + 1, 2)
        TextBox2 = Sheets("Sayfa1").Cells(ComboBox1.ListIndex + 1, 3)
    End If
End Sub

Private Sub CommandButton1_Click()
    If ComboBox1.ListIndex >= 0 Then
        Sheets("Sayfa1").Rows(ComboBox1.ListIndex + 1).Delete
        Call UserForm_Initialize
    End If
End Sub

Private Sub UserForm_Initialize()
    ComboBox1.RowSource = "Sayfa1!a1:a" & Sheets("Sayfa1").Range("a65536").End(3).Row
End Sub
 
Korhan hocam elinize sağlık teşekkür ederim. Bir sorum daha olacak Sayfa1 deki tablonun aynısı Sayfa2 ve Sayfa3 te de var tek seferde Sayfa1 deki verinin aynısını diğer sayfalardan da sile bilirmiyiz
 
Sayfa isimlerine ait satır ekleyerek deneyin.
 
Hocam dediğinizi yaptım bu sefer ilk sayfa hariç diğerlerinde siliyor ama ilk sayfada silmiyor
 
Aşağıdaki gibi deneyiniz.

Kod:
Private Sub ComboBox1_Change()
    If ComboBox1.ListIndex >= 0 Then
        TextBox1 = Sheets("Sayfa1").Cells(ComboBox1.ListIndex + 1, 2)
        TextBox2 = Sheets("Sayfa1").Cells(ComboBox1.ListIndex + 1, 3)
    End If
End Sub

Private Sub CommandButton1_Click()
    If ComboBox1.ListIndex >= 0 Then
        Satir = ComboBox1.ListIndex + 1
        Sheets("Sayfa1").Rows(Satir).Delete
        Sheets("Sayfa2").Rows(Satir).Delete
        Sheets("Sayfa3").Rows(Satir).Delete
        Call UserForm_Initialize
    End If
End Sub

Private Sub UserForm_Initialize()
    ComboBox1.RowSource = "Sayfa1!a1:a" & Sheets("Sayfa1").Range("a65536").End(3).Row
End Sub
 
Korhan Hocam olmadı beceremedim Sayın askm Hocamın kodunu üç adet butona uygulayarak işimi çözdüm. Sizleri uğraştırdım hakkınızı helal ediniz. İyi geceler.
 
Sheets("Sayfa1").Rows(Satir).Delete bu şekilde denerseniz bütün sayfalarda verilerin sıralaması aynı olursa işe yarar. Sayfa1 de a1 de ali, Sayfa2 de Veli varsa, birinde aliyi diğerinde veliyi siler. İşinizi tam görmez.
Kod:
Private Sub CommandButton1_Click()
    If ComboBox1.ListIndex >= 0 Then
        Satir = ComboBox1.ListIndex + 1
        Sheets("Sayfa1").Rows(Satir).Delete
        Sheets("Sayfa2").Rows(Satir).Delete
        Sheets("Sayfa3").Rows(Satir).Delete
        Call UserForm_Initialize
    End If
End Sub
Yukardaki kodu bütün sayfalarda ya döngü ile ya da find ile buldurarak silmeniz gerekir.
 
Hocam benim örnek gönderdiğim dosya ile asıl dosya farklıydı sayenizde birşey daha öğrendim her ikinize de teşekkür ederim askm Hocam sizin gönderdiğiniz İlk kodları üç butonuna bağlı olarak çalıştırdım işimi gördü tekrar teşekkür ederim.
 
Rica ederim. Yardımcı olabildi isek ne mutlu.
 
Geri
Üst