Modification de macro avec une macro

  • Initiateur de la discussion Initiateur de la discussion kimbl3
  • 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 !

kimbl3

XLDnaute Nouveau
bonjour , voici mon problème :

j'ai sur une feuille une macro, je copie cette feuille, sur cette nouvelle feuille je dois modifier un mot par un autre.
En gros je dois créer une macro pour en modifier une autre.

Je n'ai pas trouvé de code qui fonctionne et je ne sais pas trop comment m'y prendre.

Merci de votre aide
 
Re : Modification de macro avec une macro

Bonjour

sans macro faire Rechercher / remplacer

avec macro

Sub rech_remplace()

Cells.Replace What:="nom_a_rechercher", Replacement:="a_remplacer_par", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

Salutations.

RGI
 
Dernière édition:
Re : Modification de macro avec une macro

Merci de ta reponse mais ce n'est pas un remplacement au niveau des cellules, l'équivalent serai de faire un Remplacer dans l'editeur visual basic.

Car je veux remplacer certain mot d'une macro.
 
Re : Modification de macro avec une macro

Quelque chose dans ce genre alors !!!

Remplacer un mot dans toutes les procédures d'un classeur.
Cet exemple remplace la chaîne "Feuil1" par "Feuil3".


Sub RemplacementMotDansProcedure()
'Nécéssite d'activer la référence
'"Visual basic For Application Extensibility 5.3"
'
Dim Ancien As String, Nouveau As String, Cible As String
Dim VBComp As VBComponent
Dim i As Integer
Dim Wb As Workbook

Set Wb = Workbooks("NomClasseur.xls")

Ancien = "Feuil1"
Nouveau = "Feuil3"

For Each VBComp In Wb.VBProject.VBComponents
For i = 1 To VBComp.CodeModule.CountOfLines
Cible = VBComp.CodeModule.Lines(i, 1)
Cible = Replace(Cible, Ancien, Nouveau)
VBComp.CodeModule.ReplaceLine i, Cible
Next i
Next VBComp
End Sub


code trouvé ICI

Cdlt

RGI
 
Dernière édition:
Re : Modification de macro avec une macro

Oui ca ressemble plus a ca mais je ne sais pas comment l'adapter a mon cas :
je voudrai juste faire ca sur une feuille (le nom de l'onglet est recup dans une cellule)

et quand je met ca il me met une erreur de type
Dim VBComp As VBComponent

En tout cas merci de tes reponses
 
Re : Modification de macro avec une macro

Une idée
tu fais un nouveau fichier tu copies ta macro dans ce nouveau fichier

tu adaptes la macro fournie en mettant le nom du nouveau fichier

les fichiers doivent-être ouvert

la macro ainsi modifiée il ne te reste plus qu'a la reporter dans le fichier d'origine

La macro fonctionne je viens de la tester

bien mettre la référence "Visual basic For Application Extensibility 5.3"

Cdlt

RGI
 
Re : Modification de macro avec une macro

Bonjour les amis
Bonne appétit à tous
Excuser moi de me mêler de votre post, mais est –il possible de modifier le texte de la macro avec un userform et des combobox ; texbox ;et tous qui va bien pour pouvoir modifier à notre souhait le texte qui se trouve soit dans le thisworkbook ou un module ou encore dans le code de la feuille
 
Re : Modification de macro avec une macro

Voilà faire le test chez moi ça fonctionne
le fichier à traiter doit être ouvert

Sub RemplacementMotDansProcedure()
'Nécéssite d'activer la référence
'"Visual basic For Application Extensibility 5.3"
'
Dim Ancien As String, Nouveau As String, Cible As String
Dim i As Integer
Dim Wb As Workbook
Set Wb = Workbooks("test.xls") 'nom du fichier à traiter
nomModule = "Module2" 'nom du module
nomMacro = "test" 'nom de la macro
Ancien = "Feuil1" 'nom à remplacer
Nouveau = "Feuil3" 'à remplacer par ce nom
For i = 1 To Wb.VBProject.VBComponents(nomModule).CodeModule.CountOfLines
Cible = Wb.VBProject.VBComponents(nomModule).CodeModule.Lines(i, 1)
Cible = Replace(Cible, Ancien, Nouveau)
Wb.VBProject.VBComponents(nomModule).CodeModule.ReplaceLine i, Cible
Next i
End Sub

modifications pour ouvrir lr fichier

Sub RemplacementMotDansProcedure()
'Nécéssite d'activer la référence
'"Visual basic For Application Extensibility 5.3"
'
Dim Ancien As String, Nouveau As String, Cible As String
Dim i As Integer
Dim Wb As Workbook
Workbooks.Open Filename:=ThisWorkbook.Path & "\test.xls" ' chemin et nom du fichier à traiter
Set Wb = Workbooks("test.xls") 'nom du fichier à traiter
nomModule = "Module2" 'nom du module
nomMacro = "test" 'nom de la macro
Ancien = "Feuil1" 'nom à remplacer
Nouveau = "Feuil3" 'à remplacer par ce nom
For i = 1 To Wb.VBProject.VBComponents(nomModule).CodeModule.CountOfLines
Cible = Wb.VBProject.VBComponents(nomModule).CodeModule.Lines(i, 1)
Cible = Replace(Cible, Ancien, Nouveau)
Wb.VBProject.VBComponents(nomModule).CodeModule.ReplaceLine i, Cible
Next i
End Sub

Cdlt

RGI
 
Dernière édition:
- 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

Retour