Suppressions données
Cabrina
Messages postés
273
Statut
Membre
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je voudrais savoir s’il y a un moyen de supprimer les références qu’il y a dans mes lignes 2 et 3 (à partir de ma colonne G)
Il faudrait que j’arrive à les supprimer dans ma colonne A.
Sachant que je peux en avoir plus que ce qu’il y a actuellement et qu’il me faut pas que cela me mettre une erreur s’il n’y a rien.
Ci joint mon fichier:
https://www.cjoint.com/c/GBioBvr0oGi
Merci d'avance
Je voudrais savoir s’il y a un moyen de supprimer les références qu’il y a dans mes lignes 2 et 3 (à partir de ma colonne G)
Il faudrait que j’arrive à les supprimer dans ma colonne A.
Sachant que je peux en avoir plus que ce qu’il y a actuellement et qu’il me faut pas que cela me mettre une erreur s’il n’y a rien.
Ci joint mon fichier:
https://www.cjoint.com/c/GBioBvr0oGi
Merci d'avance
2 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonsoir, tu veux supprimer les lignes dont le contenu de la colonne 1 est identique à la valeur d'une des cellules du rectangle dont le coin supérieur gauche est en G2? -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
je propose ceci:Option Explicit Sub eliminate() Dim nlig As Long, ncol As Long Dim elim As Scripting.Dictionary Set elim = New Scripting.Dictionary nlig = 2 Do While Cells(nlig, 7) <> "" ncol = 7 Do While Cells(nlig, ncol) <> "" Call elim.Add(Cells(nlig, ncol).Value, "") ncol = ncol + 1 Loop nlig = nlig + 1 Loop nlig = 5 Do While Cells(nlig, 1) <> "" If elim.Exists(Cells(nlig, 1).Value) Then Rows(nlig).EntireRow.Delete Else nlig = nlig + 1 End If Loop End Sub-
Bonjour,
J'ai fait la macro comme indiqué ci-dessus mais quand je veux l'activer j'ai :Sub eliminate()
Qui se met en jaune et :elim As Scripting.Dictionary
Qui se surligne également.
J'ai également une petite question car j'aurai cette "procédure" à faire sur plusieurs onglets d'un même fichier, je ne vois pas le nom de l'onglet ? Comment la macro sait ou aller supprimer ?
Merci pour votre aide. -
Pour éviter l'erreur, il faut, dans l'utilitaire VBA (celui qui te montre l'erreur en jaune), dans le menu outils, choix references, cocher "microsoft scripting runtime".
En ce qui concerne le nom de l'onglet, voici une macro améliorée où tu peux contrôler le nom de l'onglet:Option Explicit Sub eliminate() Dim rectangle As Range Dim nlig As Long, ncol As Long Dim wk As Worksheet Dim elim As Scripting.Dictionary Set elim = New Scripting.Dictionary Set wk = ThisWorkbook.Sheets("IP sur OF composants") nlig = 2 Do While wk.Cells(nlig, 7) <> "" ncol = 7 Do While wk.Cells(nlig, ncol) <> "" Call elim.Add(wk.Cells(nlig, ncol).Value, "") ncol = ncol + 1 Loop nlig = nlig + 1 Loop nlig = 5 Do While wk.Cells(nlig, 1) <> "" If elim.Exists(wk.Cells(nlig, 1).Value) Then wk.Rows(nlig).EntireRow.Delete Else nlig = nlig + 1 End If Loop End Sub
-