Macro vba pour rechercher/remplacer [Résolu]

Messages postés
2
Date d'inscription
lundi 22 février 2010
Statut
Membre
Dernière intervention
22 février 2010
- - Dernière réponse :  JanusStark - 19 févr. 2019 à 10:33
Bonjour,

Je suis débutant en VBA.

voilà mon problème.......je veux créer une macro qui me permettra de rechercher le mot "support" sur plusieurs feuilles d'un même classeur et le remplacer par " ". Aussi, si le mot "support" n'existe pas alors ne rien remplacer.

pour l'instant j'ai réussi à créer seulement ceci:


[b]Sub Macro1
Cells.Replace What:="support", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub/b



.....je ne sais pas comment rajouter la "recherche et le remplacer" sur les autres feuilles du même classeur, et aussi comment appliquer la condition si pas de mot "support" alors ne rien remplacer

merci d'avance
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
4
3
Merci
Normalement, pour ta condition "si pas de support, ne rien remplacer", tu n'as pas à t'en préoccuper. Si le mot n'est pas trouvé, rien ne sera remplacé n'est-ce pas :)

Pour passer d'une feuille à une autre, il faut que tu précises sur quelle feuille tu travailles. Pour cela, il faut juste donner la feuille avant la cellule :
worksheets("Feuille 1").Cells ....

Et si tu veux faire toutes les feuilles de ton classeur (ou x feuilles) sans les nommer, tu crées une boucle avec son index :

for i = 1 to worksheets.count
worksheets(i).cells ...
next i

Molenn

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 206 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Molenn
Messages postés
113
Date d'inscription
lundi 31 mars 2003
Statut
Membre
Dernière intervention
19 décembre 2011
2
1
Merci
Bonjour,

Simplement en s'adressant à chaque feuille l'une après l'autre :
Sub Macro1()
Dim maFeuille As Worksheet
    
    For Each maFeuille In ActiveWorkbook.Worksheets
    
        maFeuille.Activate
        maFeuille.Cells.Replace What:="support", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        
    Next
    
End Sub


maFeuille.activate n'est pas obligatoire, on évite ainsi le clignotement au lancement.

Pac
Etant donné mon niveau de VBA ce code simple et efficace m'a bien rendu service. Merci
Commenter la réponse de cs_pacadebord
Messages postés
2
Date d'inscription
lundi 22 février 2010
Statut
Membre
Dernière intervention
22 février 2010
0
Merci
parfait ça marche
merci à vous deux pour le code et les explications
bon aprem
Commenter la réponse de cs_amadou78