Macro Suppression de lignes sous condition

Bonjour à tous,

J'ai un petit soucis, étant novice en vba je cherche une macro capable de me supprimer des lignes sous conditions.

Etant un fichier mis à jour régulièrement j'aurais cette manip à faire très souvent et elle est un peu lassante.

Je vous explique mon cas :

Dans mon tableau on retrouve :

Code frs Nom frs type adresse code adresse

70021603 A 1 POSTAL

70021603 A 10

70021603 A 2 FACFR1

Si un code fournisseur possède un type d'adresse "2" alors on supprime toutes les infos de ce code fournisseur. (Car un code fournisseur peut avoir plusieurs type d'adresse "1" "2" "10"...).

Le tableau n'est qu'un exemple mais les code fournisseurs comprennent le même nombre de caractère et ceux sur 1500 lignes.

Je pense que ce sera plus simple de réaliser une macro comme ça.

Merci pour votre aide.

Merci beaucoup pour votre aide.

amp

Bonsoir,

A essayer :

Sub supprimerLig()
    derLig = Range("A" & Rows.Count).End(xlUp).Row
    For i = derLig To 2 Step -1 '(on suppose que la première ligne est l'entête)
        If Cells(i, 3) = 2 Then
            Rows(i).EntireRow.Delete
        End If
    Next i
End Sub

Bonjour Raja,

J'ai essayer de mettre en place votre macro mais rien ne ce passe.

Je vous explique mon cas :

Si un code fournisseur(colonne A) possède un type d'adresse "2"(Colonne Q) alors on supprime toutes les infos de ce code fournisseur. (Car un code fournisseur peut avoir plusieurs type d'adresse "1" "2" "10"...).

Voici ce que je recherche à faire je vous partage le fichier. Vous verrez que le code fournisseurs peut apparaître sur plusieurs lignes et que si on retrouve 2 (en colonne Q) pour ce fournisseurs on peut supprimer ce numéro fournisseurs et toutes les infos correspondantes. Par ailleurs j'ai masqué les colonne C à P pour que ce soit plus lisible.

Il n'y a pas toute les ref mais on peut compter 3000lignes en tout.

Merci pour votre aide.

27test-macro.xlsx (12.45 Ko)

Re,

Eventuellement à adapter, car cette macro est faite pour le fichier joint. Quand je teste ça marche.

A tester :

Sub supprimerLig()
    derLig = Range("A" & Rows.Count).End(xlUp).Row
    For i = derLig To 2 Step -1 '(on suppose que la première ligne est l'entête)
        If Cells(i, "Q") = 2 Then
            Rows(i).EntireRow.Delete
        End If
    Next i
End Sub

Bonsoir Raja,

Oui elle fonctionne cependant elle supprime uniquement la ligne ou il y a 2 alors que je souhaite supprimer les lignes qui ont le même code fournisseur si le 2 apparaît dans une des ligne ou le codes fournisseurs est le même sur les 3 ou 4 lignes.

Exemples

70221803 A 5 LIVR

70221803 A 10

70221803 A 2 FACFR1

Voila ce sont les 3 premières lignes de la pièce jointe. on remarque qu'on a le même code fournisseurs et que le 2 apparaît dans une des lignes. SI ce 2 est présents je souhaite supprimer toutes les lignes avec le même code fournisseurs.

Merci beaucoup pour votre aide.

Bonjour Raja,

J'ai trouvé la solution à mon problème merci tout de même d'avoir pris le temps de m'aider.

Rechercher des sujets similaires à "macro suppression lignes condition"