Supprimer plusieurs lignes dans une base via un combobox

Bonjour,

A l'aide du formulaire, je souhaiterais supprimer toutes les lignes dans les différents onglets correspond à la zone sélectionnée.

Le code fonctionne si la zone n'apparait qu'une fois, mais si elle apparait plusieurs fois, le code ne fonctionne pas.

Une solution ?

Bonjour,

Si les zones ne sont pas aux mêmes lignes dans les différents onglets, le code ne fonctionnera pas, même pour une unique apparition.

Le problème vient du fait que vous effectuez une unique recherche, et obtenez donc un unique numéro de ligne à supprimer.

Dans le code suivant, j'ai repris votre code en insérant une boucle While, qui répète la recherche (et la suppression) tant qu'une zone correspondant à celle sélectionnée est trouvée.

Private Sub CommandButton1_Click()
    Dim i As Integer, rech As Variant
    If ComboBox1.Value <> "" Then
        For i = 1 To ThisWorkbook.Sheets.Count
            Set rech = Sheets(i).Columns(2).Find(ComboBox1.Value)
            While Not rech Is Nothing
                Lig = rech.Row
                Sheets(i).Rows(Lig).EntireRow.Delete
                Set rech = Sheets(i).Columns(2).Find(ComboBox1.Value)
            Wend
        Next
    End If
End Sub

A vous lire,

Bonjour Goos, Fatos, le forum,

Un essai avec l'utilisation du filtre....

Private Sub CommandButton1_Click()
 Dim dl%, derlig%, NbLig%

 Application.ScreenUpdating = False

  With Worksheets("Produit A")
    dl = .Range("B" & Rows.Count).End(xlUp).Row
     .Range("B3").AutoFilter Field:=1, Criteria1:=ComboBox1
      NbLig = ActiveSheet.AutoFilter.Range.Columns(2).SpecialCells(xlCellTypeVisible).Count - 1
       If NbLig = 0 Then
       .AutoFilterMode = False: MsgBox "Aucune ligne à supprimer", vbInformation: Exit Sub
       Else
       .Range("A4:P" & dl).Cells.SpecialCells(xlCellTypeVisible).EntireRow.Delete
       .AutoFilterMode = False
        derlig = .Cells(.Rows.Count, 2).End(xlUp).Row '................(facultatif)
        MsgBox dl - derlig & " ligne(s) supprimée(s)", vbInformation  '(facultatif)
     End If
 End With
 Unload Me
End Sub

Cordialement,

Rechercher des sujets similaires à "supprimer lignes base via combobox"