Creation de macro par une macro

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

C

Cerber

Guest
Bonjour le forum !!!

La solution de ce petit probleme pourrait me faciliter grandement la tache:

Je cree une macro par une macro a l'aide des instruction de @+Thierry je crois (pardon si je me trompe...).

Sub EcrireThisWorkBook()
Dim X As Integer

With Workbooks("New.xls").VBProject.VBComponents("ThisWorkbook").CodeModule
X = .CountOfLines
.InsertLines X + 1, "Private Sub Workbook_Open()"
.InsertLines X + 2, "MsgBox ""Coucou"",VBinformation "
.InsertLines X + 3, "End Sub"
End With
End Sub

J'ai besoin de sauvegarder le chemin(qui peut changer) du fichier qui va cree ce fichier "New" avec sa macro dans ce dernier. Actuellement je passe par une cellule de la feuille mais j'aimerai cette transition et inscrire directement ce chemin dans les lignes de code de ce fichier "New". Est ce possible?

J'espere avoir ete suffisamment clair... si ce n'est pas le cas dites le moi!

Merci encore a tout ceux qui posent des questions et surtout a ceux qui y repondent sur ce forum !!!

Cerber
 
Bonsoir à tous,

Cerber sans trop de précision c'est un peu vague pour le chemin d'un classeur tu as Workbook("ton classeur").path qui pourrait faire l'affaire , ou application.getsavefilenameas...

A+++
 
Salut Zon et Salut le forum!!!
Je vois que je n'ai pas ete assez clair, je vais essayer de donner plus de precisions:
En fait je n'ai pas de probleme pour obtenir le chemin du fichier original, j'utilise activeworkbook.fullname ou thisworkbook.fullname.

Ensuite ce workbook en cree un nouveau et cree une macro a l'interieur de celui ci comme je l'ai dit dans le premier message.
Cette macro dois etre capable de retrouver le fichier qui l'a cree peu importe ou il est, car elle doit effectuer des modifications sur celui ci.
Pour l'instant j'enregistre le chemin complet (du fichier "pere") dans une cellule du nouveau workbook, ensuite la macro de celui ci execute un workbook.open filename:= cells(,).value et hop on rouvre le fichier pere pour les modifs.

Je voudrais eviter de passer par l'inscription de ce chemin sur la feuille car je vais etre oblige de la proteger en ecriture et tout ce qui s'ensuit pour eviter une fausse manip d'un utilisateur.
Pour ca je souhaitais utiliser le fait qu'on "ecrit" la macro et ainsi garder ce chemin dans le code...

Donc la prochaine fois j'eviterai de lancer un nouveau fil avant de n'avoir un peu plus reflechi car je viens de trouver la reponse:

Sub EcrireThisWorkBook()
Dim X As Integer
With Workbooks("New.xls").VBProject.VBComponents("ThisWorkbook").CodeModule
X = .CountOfLines
.InsertLines X + 1, "Private Sub Workbook_Open()"
.InsertLines X + 2, "workbook.open filename;=" & workbooks("Fichierpere.xls").fullname
.InsertLines X + 3, "End Sub"
End With
End Sub

Merci d'avoir pris de ton temps pour me repondre et encore desole si je n'ai pas ete tres clair mais c'etait pas tres facile a expliquer (enfin je trouve).
Merci forum !!!

Salut!
 
Bon en fait je me suis enflamme et j'ai pas tout a fait trouve...
On va dire que je suis sur la piste...

La il faudrait qu'une ame charitable m'explique pourquoi j'ai une erreur passque je vois vraiment pas ce qui cloche dans les lignes de codes...
Merci d'avance pour votre aide!!!!

Salut!

Cerber
 

Pièces jointes

Bonsoir à tous,

Cerber bon je vois des guillemets partout, lol

le plus simple c'est d'initialiser ta variable lenom différemment comme suit:
dim Lenom as string
.....

Lenom = """" 'on Lenom qui a 1 guillemet
Lenom = Lenom & ActiveWorkbook.FullName 'Lenom="C:\Tempo...
Lenom = Lenom & """" 'Lenom="C:\Temp..."

...

car dans ta procédure befire close lefichier attend une chaine de caractères entre guillement lefichier="C:\Te..." et non lefichier=C:\Te... qui provoque une erreur

A+++
 
Bonjour tout le monde!!
Merci a toi Zon, ca marche comme sur des roulettes, je me doutais bien que c'etait une histoire de guillemets mais j'avais pas pense a prendre le probleme avant la ligne fatidique... ca faisait des belles guirlandes de guillemets mais ca marchait po!!!!
Encore merci a toi et au forum!

Cerber

PS: Tu dors un peu la nuit quand meme? ;o)
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Réponses
7
Affichages
371
  • Question Question
Microsoft 365 Erreur de macro
Réponses
4
Affichages
795
Réponses
2
Affichages
1 K
Retour