Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
anonymousA
bonjour,
si tu connais le N° de la ligne où insérer ton code. 2 possibilités , soit tu remplaces le code existant, soit tu insères dans le code de ton module ( il te faudra désigner précisément le module mais un UF étant un module de classe , tu y arriveras ).
Exemple ci-dessous, on insère ou on remplace dans le Module appelé TOTO à la ligne 2 du code l'instruction Msgbox "tata est là". Pour que le code ci-dessus soit compilable, il te faut une référence à Microsoft Visual Basic Extensibility 5.3 dans OUtils/Références de l'éditeur VBE.
Dim cd As CodeModule Set cd = ThisWorkbook.VBProject.VBComponents("TOTO").CodeModule
cd.InsertLines 2, "Msgbox" & """tata est là""" ou cd.ReplaceLine 2, "Msgbox" & """tata est là"""
Il y a bien sur plus compliqué et on peut faire beaucoup d'amusements différents
A+
Bonjour,
J'ai besoin de faire une macro qui modifie une macro dans un autre classeur. Je dois rajouter une ligne dans une procédure qui est liée à un userform.
Merci de votre aide. Beabou.
bonjour,
si tu connais le N° de la ligne où insérer ton code. 2 possibilités ,
soit tu remplaces le code existant, soit tu insères dans le code de ton
module ( il te faudra désigner précisément le module mais un UF étant un
module de classe , tu y arriveras ).
Exemple ci-dessous, on insère ou on remplace dans le Module appelé TOTO
à la ligne 2 du code l'instruction Msgbox "tata est là".
Pour que le code ci-dessus soit compilable, il te faut une référence à
Microsoft Visual Basic Extensibility 5.3 dans OUtils/Références de
l'éditeur VBE.
Dim cd As CodeModule
Set cd = ThisWorkbook.VBProject.VBComponents("TOTO").CodeModule
cd.InsertLines 2, "Msgbox" & """tata est là"""
ou
cd.ReplaceLine 2, "Msgbox" & """tata est là"""
Il y a bien sur plus compliqué et on peut faire beaucoup d'amusements
différents
A+
Bonjour,
J'ai besoin de faire une macro qui modifie une macro dans un autre classeur.
Je dois rajouter une ligne dans une procédure qui est liée à un userform.
si tu connais le N° de la ligne où insérer ton code. 2 possibilités , soit tu remplaces le code existant, soit tu insères dans le code de ton module ( il te faudra désigner précisément le module mais un UF étant un module de classe , tu y arriveras ).
Exemple ci-dessous, on insère ou on remplace dans le Module appelé TOTO à la ligne 2 du code l'instruction Msgbox "tata est là". Pour que le code ci-dessus soit compilable, il te faut une référence à Microsoft Visual Basic Extensibility 5.3 dans OUtils/Références de l'éditeur VBE.
Dim cd As CodeModule Set cd = ThisWorkbook.VBProject.VBComponents("TOTO").CodeModule
cd.InsertLines 2, "Msgbox" & """tata est là""" ou cd.ReplaceLine 2, "Msgbox" & """tata est là"""
Il y a bien sur plus compliqué et on peut faire beaucoup d'amusements différents
A+
Bonjour,
J'ai besoin de faire une macro qui modifie une macro dans un autre classeur. Je dois rajouter une ligne dans une procédure qui est liée à un userform.
Merci de votre aide. Beabou.
michdenis
Bonjour Beaubou,
A ) Pour les procédures suivantes, aucune bibliothèque supplémentaire à ajouter:
B ) Copie ces 2 procédures dans un module standard en les adaptant à ton application.
C ) Il faut faire "attention" pour gérer adéquatement ce type de procédure
'--------------------------------------------- Sub AjouterUneLigneDeCode()
Dim Comp As Object, NoLigne As Integer, Ajout As Variant Ajout = "Msgbox ""ça marche!"""
'Attention : Remplace Module2 par le nom du module 'où se trouve ta procédure Set Comp = ThisWorkbook.VBProject.VBComponents("module2").CodeModule 'indique à quelle ligne la procédure "Trouver" débute.
NoLigne = Comp.ProcBodyLine("Trouver", 0) 'Ajoute à la deuxième ligne de la procédure "Trouver 'le code désiré Comp.InsertLines NoLigne + 3, Ajout
End Sub '--------------------------------------------- Sub effacerLigneDeCode()
Dim Comp As Object, NoLigne As Integer
'Attention : Remplace Module2 par le nom du module 'où se trouve ta procédure Set Comp = ThisWorkbook.VBProject.VBComponents("module2").CodeModule 'indique à quelle ligne la procédure "Trouver" débute. NoLigne = Comp.ProcBodyLine("Trouver", 0) 'Détruit la ligne de code indiquée Comp.DeleteLines NoLigne + 3, 1 Set Comp = Nothing End Sub '---------------------------------------------
Salutations!
"Beabou" a écrit dans le message de news: Bonjour,
J'ai besoin de faire une macro qui modifie une macro dans un autre classeur. Je dois rajouter une ligne dans une procédure qui est liée à un userform.
Merci de votre aide. Beabou.
Bonjour Beaubou,
A ) Pour les procédures suivantes, aucune bibliothèque supplémentaire à ajouter:
B ) Copie ces 2 procédures dans un module standard en les adaptant à ton application.
C ) Il faut faire "attention" pour gérer adéquatement ce type de procédure
'---------------------------------------------
Sub AjouterUneLigneDeCode()
Dim Comp As Object, NoLigne As Integer, Ajout As Variant
Ajout = "Msgbox ""ça marche!"""
'Attention : Remplace Module2 par le nom du module
'où se trouve ta procédure
Set Comp = ThisWorkbook.VBProject.VBComponents("module2").CodeModule
'indique à quelle ligne la procédure "Trouver" débute.
NoLigne = Comp.ProcBodyLine("Trouver", 0)
'Ajoute à la deuxième ligne de la procédure "Trouver
'le code désiré
Comp.InsertLines NoLigne + 3, Ajout
End Sub
'---------------------------------------------
Sub effacerLigneDeCode()
Dim Comp As Object, NoLigne As Integer
'Attention : Remplace Module2 par le nom du module
'où se trouve ta procédure
Set Comp = ThisWorkbook.VBProject.VBComponents("module2").CodeModule
'indique à quelle ligne la procédure "Trouver" débute.
NoLigne = Comp.ProcBodyLine("Trouver", 0)
'Détruit la ligne de code indiquée
Comp.DeleteLines NoLigne + 3, 1
Set Comp = Nothing
End Sub
'---------------------------------------------
Salutations!
"Beabou" <Beabou@discussions.microsoft.com> a écrit dans le message de news: D060EF2A-8C3A-42B1-A8EC-B8064B36532D@microsoft.com...
Bonjour,
J'ai besoin de faire une macro qui modifie une macro dans un autre classeur.
Je dois rajouter une ligne dans une procédure qui est liée à un userform.
A ) Pour les procédures suivantes, aucune bibliothèque supplémentaire à ajouter:
B ) Copie ces 2 procédures dans un module standard en les adaptant à ton application.
C ) Il faut faire "attention" pour gérer adéquatement ce type de procédure
'--------------------------------------------- Sub AjouterUneLigneDeCode()
Dim Comp As Object, NoLigne As Integer, Ajout As Variant Ajout = "Msgbox ""ça marche!"""
'Attention : Remplace Module2 par le nom du module 'où se trouve ta procédure Set Comp = ThisWorkbook.VBProject.VBComponents("module2").CodeModule 'indique à quelle ligne la procédure "Trouver" débute.
NoLigne = Comp.ProcBodyLine("Trouver", 0) 'Ajoute à la deuxième ligne de la procédure "Trouver 'le code désiré Comp.InsertLines NoLigne + 3, Ajout
End Sub '--------------------------------------------- Sub effacerLigneDeCode()
Dim Comp As Object, NoLigne As Integer
'Attention : Remplace Module2 par le nom du module 'où se trouve ta procédure Set Comp = ThisWorkbook.VBProject.VBComponents("module2").CodeModule 'indique à quelle ligne la procédure "Trouver" débute. NoLigne = Comp.ProcBodyLine("Trouver", 0) 'Détruit la ligne de code indiquée Comp.DeleteLines NoLigne + 3, 1 Set Comp = Nothing End Sub '---------------------------------------------
Salutations!
"Beabou" a écrit dans le message de news: Bonjour,
J'ai besoin de faire une macro qui modifie une macro dans un autre classeur. Je dois rajouter une ligne dans une procédure qui est liée à un userform.