Supprimer des lignes sous conditions

marieg58 -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
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. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  2. marieg58
     
    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. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
  3. marieg58
     
    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. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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