Supprimer des lignes sous conditions

Bonjour,
Je voudrais, dans un tableau, supprimer les lignes qui ont la même valeur en colonne a et colonne B.
La colonne a contient des codes article, la colonne B des prix, la colonne C une date.
Je veux supprimer toutes les lignes qui ont les mêmes code article etmêmes dates.
J'ai fait ce code mais ca ne fonctionne absolument pas.

Sheets("feuil5").Select
Range("a1").Select

Dim feuille As Worksheet
Set feuille = ActiveSheet
With feuille
For i = .UsedRange.Rows.Count To 1 Step -1
j = i + 1
If (.Cells(i, 1) & .Cells(i, 2)) = (.Cells(j, 1) & .Cells(j, 2)) Then
.Range(.Cells(j, 1), .Cells(j, 4)).ClearContents
End If
Next i
End With

Je suis débutante
merci de votre aide

3 réponses

  1. Modérateur
    Salut,
    Sans avoir tester, remplace :
    If (.Cells(i, 1) & .Cells(i, 2)) = (.Cells(j, 1) & .Cells(j, 2)) Then
    par :
    If .Cells(i, 1) = .Cells(j, 1) And .Cells(i, 2) = .Cells(j, 2) Then
    --
    Franck P
    0
    1. Merci mais ca ne fonctionne pas tout a fait correctement.
      Au bout d'un moment il s'arrete et j'ai la fenete débogage
      Et enfin je voudrais supprimer les 2 lignes identiques, mais il ne supprime que la deuxième
      merci de votre aide
      0
      1. Modérateur
        Pour supprimer entièrement 2 lignes :
        .Rows(i & ":" & j).EntireRow.Delete
        !!! ATTENTION travaillez sur une copie de votre classeur car cette macro contient un Delete... Si ça foire, ça supprime!!!!!

        Pourquoi ça s'arrête? Que dis le débogage? Désolé, je ne suis pas devin....
        0
    2. Désolée je ne suis pas très douée, je débute, en fait j'ai un gros fichier à traiter et je ne m'en sors pas.
      En fait, au bout d'un moment, J'ai une boite de dialogue "Erreur 13 Incomptabilité de type" et il surligne la ligne
      If .Cells(i, 1) = .Cells(j, 1) And .Cells(i, 2) = .Cells(j, 2) Then

      J'ai modifié le code comme suit :
      Sub Macro()
      Sheets("feuil5").Select
      Range("a1").Select
      Dim feuille As Worksheet
      Set feuille = ActiveSheet
      With feuille
      For i = .UsedRange.Rows.Count To 1 Step -1
      j = i + 1
      If .Cells(i, 1) = .Cells(j, 1) And .Cells(i, 2) = .Cells(j, 2) Then
      .Rows(i & ":" & j).EntireRow.Delete
      End If
      Next i
      End With
      End Sub

      Mais cette fois, il tourne dans le vide. J'ai encore dû faire une erreur
      merci
      0
      1. Modérateur
        salut,
        Sans voir le fichier, il va être difficile de continuer. Ta macro n'a pas l'air mauvaise...
        A tout hasard, la feuille est bien triée ?
        0