Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Merci pour ta réponse Jacky67,

Cela fonctionne, mais je ne comprend pas ce que tu appel : "liste de mots nommée dynamiquement "liste""

et a quoi sert cette formule =DECALER(Feuil1!$G$1;;;NBVAL(Feuil1!$G:$G))
 
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
 
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 .
 

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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…