Rechercher/remplacer avec autofilter
Résolu
Nat4287
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Rechercher/remplacer avec autofilter
- Rechercher remplacer word - Guide
- Rechercher ou entrer l'adresse - Guide
- Remplacer disque dur par ssd - Guide
- Rechercher image - Guide
- Remplacer coco - Accueil - Réseaux sociaux
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, je ferais ainsi:
Private Sub ma() Dim col As Range, trouve As Range Set col = Intersect(ActiveSheet.Columns(4), ActiveSheet.UsedRange) Set trouve = col.Find("MA, MA", , , xlPart) Do Until trouve Is Nothing trouve.Value = "MA" Set trouve = col.FindNext(trouve) Loop End Sub
Et maintenant comme j'ai plusieurs autres codes différents comme "AL, AL, etc" à remplacer, dois-je refaire une déclaration DIM en changeant les valeurs ? Ou il y a un script plus simple ?
on pourrait aussi lire une liste des valeurs quelque part dans Excel
Dois-je comprendre qu'il y a 2 macros ci-dessus ? VBA me les sépare comme 2 macros distinctes...
La 1° macro fait tourner l'autre ?
En tout cas, ça me donne le résultat escompté. Je vais tester avec l'ensemble de mes données.
Mille mercis pour ton aide !
il serait possible de chercher le premier mot de chaque cellule, puis de chercher si il se répète, séparé par des virgules, et remplacer le contenu par le premier mot. cela éviterait d'avoir une liste (MA, AL, ...).
Mon souci maintenant est que j'ai intégré les différentes procédures (j'ai besoin des 2 procédures que tu m'as faites) dans ma grosse macro et ça cale.
Ca cale sur le "DIM call AS Range
Dim col As Range
Set col = Intersect(ActiveSheet.Columns(4), ActiveSheet.UsedRange)
Call changeons(col, "AL")
Call changeons(col, "AR")
Call changeons(col, "AU")
Plus haut dans ma macro, j'ai inséré ceci
Dim col As Range, trouve As Range
Set col = Intersect(ActiveSheet.Columns(4), ActiveSheet.UsedRange)
Set trouve = col.Find("2300")
Do Until trouve Is Nothing
trouve.Value = "Sucettes"
Set trouve = col.FindNext(trouve)
Set col = Intersect(ActiveSheet.Columns(4), ActiveSheet.UsedRange)
Set trouve = col.Find("2301")
Do Until trouve Is Nothing
trouve.Value = "Pomme d'amour"
Set trouve = col.FindNext(trouve)
Loop
Séparément, elles fonctionnent mais pas ensemble, semble-t-il !