Supprimer des cellules d'une colonne en fonction d'une liste

  • Initiateur de la discussion Initiateur de la discussion eric57
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eric57

XLDnaute Occasionnel
Bonsoir le Forum

Je travail sur des colonnes que je dois "nettoyer" c'est à dire vider des cellules contenant des données inutiles ( et souvent reccurent)

Je cherche une macro pouvant "nettoyer" ma colonne A en fonction d'une liste de mots connus

J'y arrive avec cette macro toute simple,
Code:
Sub nettoyage()
Dim Pl As Long

Pl = Range("A" & Rows.Count).End(xlUp).Row

   For i = 1 To Pl      
        If Range("A" & i) = "AGORA" Or Range("A" & i) = "5PRG" Or Range("A" & i) = "60CM" Then
        Range("A" & i) = Empty
        End If
        Next
End Sub

mais le nombre de mots à supprimer augmente vite, et je souhaite plutôt le faire à partir d'une liste existante dans la même feuille sur une autre colonne . Cette liste pouvant être complétée au fur et à mesure par de nouveaux mots.

Merci pour votre aide

Eric
 
Bonjour,
Avec une liste de mots nommée dynamiquement "liste"
et 3 variantes🙂
Code:
Sub nettoyage()
Dim i As Long
With Feuil1
For i = .Cells(.Rows.Count, 1).End(xlUp).Row To 1 Step -1
If IsNumeric(Application.Match(.Range("a" & i).Value, [liste], 0)) Then
.Range("a" & i) = "" ' efface le contenu
' .Range("a" & i).Delete Shift:=xlUp 'pour supprimer la cellule
' .Rows(i).Delete ' pour supprimer la ligne
End If
Next
End With
End Sub
 

Pièces jointes

RE...
Sur la feuille même cette formule ne sert que visuellement pour te montrer qu'elle existe.

Dans l'exemple donné, la liste de mots nommée dynamiquement est celle située en G1:G3
On dit "dynamiquement" parce que l'on peut
-Rajouter des mots
-La déplacer
-Même sur une autre feuille
-Le tout sans avoir a modifier le code vba
Dans le code 'exemple' on lui fait appel par son nom entouré de crochet [liste] (qui peut aussi s'écrire range("liste"))
Cette plage nommée est conçue par le menu ==> Formules==>gestionnaire de noms
Elle a comme nom "liste" et fait référence à la formule =DECALER(Feuil1!$G$1;;;NBVAL(Feuil1!$G:$G))

Bon courage
et
bonne nuit
 
Merci pour tes explications. Effectivement cela fonctionne bien

MAis j'ai du coup une autre question.

Pour alimenter ma liste , est-il possible de copier-coller des cellules sélectionnées et les ajouter à la liste,

ActiveCell ne prenant que la cellule "active" et non l'ensemble des cellules sélectionnées
 
Merci pour tes explications. Effectivement cela fonctionne bien

MAis j'ai du coup une autre question.

Pour alimenter ma liste , est-il possible de copier-coller des cellules sélectionnées et les ajouter à la liste,

ActiveCell ne prenant que la cellule "active" et non l'ensemble des cellules sélectionnées
Re...
De quelle liste parles-tu ?
Que Souhaites-tu faire exactement ?
 
La liste dynamique doit être alimentée avec les mots à supprimer. ( en colonne G)
Actuellement on fait tout" bêtement" un copier coller des mots . Ils sont au départ dans la colonne "A" .
Idéalement il faudrait qu'on fasse une sélection des cellules non adjacentes, et que cette sélection se rajoute en bas de la Liste .
 
La liste dynamique doit être alimentée avec les mots à supprimer. ( en colonne G)
Actuellement on fait tout" bêtement" un copier coller des mots . Ils sont au départ dans la colonne "A" .
Idéalement il faudrait qu'on fasse une sélection des cellules non adjacentes, et que cette sélection se rajoute en bas de la Liste .

Re...
Si j'ai bien compris...
Ceci ajoute à la liste des noms (Nommée "liste") ceux sélectionnés dans la colonne A, sans faire de doublon.
VB:
Sub AjoutDesExclut()
Dim C As Range
With Feuil1
For Each C In Selection
If Not IsNumeric(Application.Match(C, [liste], 0)) And C.Column = 1 Then
.Range("G" & .Cells(.Rows.Count, "g").End(xlUp).Row + 1) = C
End If
Next
End With
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
508
Retour