VBA excel effacer des lignes

Bonjour à tous le monde !!!

Je voudrais éliminer à la pression d'un commandbutton les lignes dont la cellule de la colonne c n'est pas égale à la valeur d'une combo. Ce code ne marche pas, il echoue à la ligne Rows(i).delete...

Quelqu'un a-t-il une idée ?

Dim derligne As Integer
Dim i As Integer

derligne = Sheets("Situation débiteur cédé").Range("C65000").End(xlUp).Row
For i = 2 To derligne
If Cells(i, 3) <> ComboBox1.Value Then
Rows(i).Delete
ComboBox2.Locked = False
End If
Next i

Merci beaucoup à tous ceux qui tenteront de m'aider !!!

2 réponses

  1. Contributeur
    bonjour

    Je viens de tester le code sur une version 2000.

    Effectivement la remarque de m@rina, que je salue, était judicieuse comme toujours, mais même avec des cellules fusionnées, j'ai bien supprimé les lignes.
    0
    1. Contributeur
      bonjour

      Essaies en mettant :
      For i = derligne To 2 step -1

      Ainsi tu supprimes en remontant et la suppression des lignes ne perturbe pas ton index.
      0
      1. Merci de l'astuce mais j'ai encore une erreur sur la ligne Rows(i).delete

        erreur 1004 : la methode delete de la classe range a échoué !
        0
      2. Modérateur
        Bonjour,

        Tu n'aurais pas, par hasard, des cellules fusionnées ?

        m@rina
        0
      3. Contributeur
        Bonjour,

        Dim i As Integer est aussi incorrect car tu ne peux pas aller jusqu'à 65000.
        Dim i As Long le permet.

        Essaies de bien adresser toutes tes références à ta feuille ainsi :
        Dim derligne As Long 
        Dim i As Long 
        With Sheets("Situation débiteur cédé")
        derligne = .Range("C65000").End(xlUp).Row
        For  i = derligne To 2 step -1
        If .Cells(i, 3) <> ComboBox1.Value Then
             .Rows(i).Delete
        ComboBox2.Locked = False
        End If
        Next i 
        End With 
        0
      4. Merci pour tous ces conseils, mais le

        .rows(i).delete pause le même problème.

        .rows(i).delete = delete fonctionne mais vide les lignes mais ne les supprime pas complètement..
        0
      5. Contributeur
        vide les lignes mais ne les supprime pas complètement

        Tu me surprend car clearcontents supprime les valeurs mais delete efface bien la ligne.
        Je ne vois pas le phénomène ?
        Qu'elle version utilises-tu ? excel 2000 ?
        0