|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Date d'inscription: juin 2009
Messages: 35
|
Hello tous le monde
J'ai un programme qui crée plusieurs fichiers excel et je voudrais creer un script qui permet de donné pour reference un fichier .xla (c'est à dire automatiser la procedure: Alt+F11 --> outils --> reference --> cocher le xla) + rajouter un code dans le 'thisworkbook" (idem dans le alt+F11 --> this workbook) Merci |
|
|
|
|
|
#2 |
|
Membre actif
![]() Date d'inscription: octobre 2007
Localisation: 29
Messages: 176
|
Bonjour,
cette ligne de code, dans le WorkBook_Open, te permet de référencer la xla... Code :
ThisWorkbook.VBProject.References.AddFromFile _ "C:\Documents and Settings\Ta_Macro.xla" |
|
|
|
|
|
#3 |
|
Futur Membre du Club
![]() Date d'inscription: juin 2009
Messages: 35
|
ok merci et pour le code dans le "thisworkbook"
Exemple: je souhaite que le fichier A.xls rajoute un code dans le "thiswokbook" du fichier .xls |
|
|
|
|
|
#4 |
|
Expert Confirmé
![]() Date d'inscription: juillet 2008
Localisation: Elsass
Âge: 24
Messages: 1 887
|
Un tuto pour manipuler l'éditeur de macro par macro, et donc écrire du code par macro
http://silkyroad.developpez.com/VBA/VisualBasicEditor/ Tu devrais y trouver ton bonheur |
|
|
|
|
|
#5 |
|
Membre actif
![]() Date d'inscription: octobre 2007
Localisation: 29
Messages: 176
|
Re-,
le code suivant ajoute un code évènementiel dans le ThisWorkBook du classeur actif Lorsque tu créés ton fichier (WorkBooks.Add....), tu es donc dans ce nouveau classeur.. Essaie : Code :
Sub Insert_Proc() 'nécessite une référence à : 'Microsoft Visual Basic For Applications Extensibility 5.3 Dim DebutCode As Long Dim S As String S = "ThisWorkbook.VBProject.References.AddFromFile _" & vbLf S = S & """C:\Documents and Settings\TaMacro.xla""" With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule DebutCode = .CreateEventProc("Open", "Workbook") .InsertLines DebutCode + 1, S End With End Sub |
|
|
|
|
|
#6 |
|
Futur Membre du Club
![]() Date d'inscription: juin 2009
Messages: 35
|
Merci j'ai trouvé ce code:
Code :
'Ajoute une macro dans le module
With VBComp.CodeModule
X = .CountOfLines
.InsertLines X + 1, "Sub laMacro()"
.InsertLines X + 2, "Range(""A1"").Value = ""Coucou"""
.InsertLines X + 3, "End Sub"
End With
Merci |
|
|
|
|
|
#7 | |
|
Futur Membre du Club
![]() Date d'inscription: juin 2009
Messages: 35
|
Citation:
Ok merci pour la reponse Ici on active le addin : Code :
S = "ThisWorkbook.VBProject.References.AddFromFile _" & vbLf S = S & """C:\Documents and Settings\TaMacro.xla""" mais ici j'ai pas trop compris la synthaxe: Code :
.InsertLines DebutCode + 1, S |
|
|
|
|
|
|
#8 | |
|
Membre actif
![]() Date d'inscription: octobre 2007
Localisation: 29
Messages: 176
|
Re-,
Tu as déjà un code de fait? Citation:
Je te conseille également ![]() pour la ligne de code que tu ne comprends pas Et S n'est nullement un Add-in, mais une variable String, qui a la valeur marquée en Rouge.... Lorsque tu as inséré cette variable, elle devient une ligne de procédure, dans le WorkBook_Open |
|
|
|
|
|
|
#9 |
|
Futur Membre du Club
![]() Date d'inscription: juin 2009
Messages: 35
|
|
|
|
|
|
|
#10 |
|
Futur Membre du Club
![]() Date d'inscription: juin 2009
Messages: 35
|
Est ce que qu'un pourrais m'aider ?
donc pour rajouter la reference je fais rajoute cela: Code :
ThisWorkbook.VBProject.References.AddFromFile _ "C:\Documents and Settings\Ta_Macro.xla" Code :
With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule DebutCode = .CreateEventProc("Open", "Workbook") .InsertLines DebutCode + 1, S End With la macro fait une 50ene de ligne il n'y pas de methode plus facile? merci et til possible d'exporter une module directement? car je dois transférer un module entier Dernière modification par AlainTech ; 27/07/2009 à 16h14. Motif: Fusion de 2 messages |
|
|
|
|
|
#11 |
|
Inactif(ve)
![]() Date d'inscription: juin 2007
Localisation: Belqique
Messages: 2 074
|
Bonjour,
Exporter le module ne présente aucun intérêt, tu peu l'exporter manuellement dans un répertoir. Et dans le classeur que tu ouvre tu peu importer le module. et en VBA Code :
Workbooks("NomDuClasseur.xls").VBProject.VBComponents.Import _ "C:\Rép\Rép\Module1.Bas" Je ne crois pas que ça fonctionne pour un module de feuille ou de classeur. (jamais essayer) A+ |
|
|
|
|
|
#12 |
|
Futur Membre du Club
![]() Date d'inscription: juin 2009
Messages: 35
|
non cela ne marche pas:
De plus, le fichier orignal s'appel "diesearbeitmap" et dans la version "francaise de word cela donne "thisworkbook" :/ |
|
|
|
|
|
![]() |
||
Une macro qui permet de de referencer un .xla sur plusieurs CL avec un code dans le "thisworkbook"
|
||
| Outils de la discussion | |
|
|