Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 01/07/2009, 11h33   #1
Futur Membre du Club
 
Date d'inscription: juin 2009
Messages: 35
Par défaut Une macro qui permet de de referencer un .xla sur plusieurs CL avec un code dans le "thisworkbook"

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
Esmax666 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/07/2009, 12h40   #2
Membre actif
 
Date d'inscription: octobre 2007
Localisation: 29
Messages: 176
Par défaut

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"
Chemin et nom de la macro à adapter...
mapeh est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/07/2009, 13h04   #3
Futur Membre du Club
 
Date d'inscription: juin 2009
Messages: 35
Par défaut

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
Esmax666 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/07/2009, 13h08   #4
Expert Confirmé
 
Avatar de Krovax
 
Date d'inscription: juillet 2008
Localisation: Elsass
Âge: 24
Messages: 1 887
Par défaut

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
Krovax est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/07/2009, 13h20   #5
Membre actif
 
Date d'inscription: octobre 2007
Localisation: 29
Messages: 176
Par défaut

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
 
N'oublie pas d'activer la référence citée en haut du code (ne sera utile que pour le classeur qui exécute le code....)
mapeh est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/07/2009, 14h31   #6
Futur Membre du Club
 
Date d'inscription: juin 2009
Messages: 35
Par défaut

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
 
 
Mais pas j'ai pas trop compris la syntaxe ici je dois remplacer "CodeModule" par le code de mon module donc "thisworkbook"? mais ensuite je coprend l'autre paris du code.. la fonction... ou faut il que je copie le code que je souahite transferer?

Merci
Esmax666 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/07/2009, 14h48   #7
Futur Membre du Club
 
Date d'inscription: juin 2009
Messages: 35
Par défaut

Citation:
Envoyé par mapeh Voir le message
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
 
N'oublie pas d'activer la référence citée en haut du code (ne sera utile que pour le classeur qui exécute le code....)

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
ou est ce que je peux rajouter mon code ?
Esmax666 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/07/2009, 15h07   #8
Membre actif
 
Date d'inscription: octobre 2007
Localisation: 29
Messages: 176
Par défaut

Re-,

Tu as déjà un code de fait?

Citation:
J'ai un programme qui crée plusieurs fichiers excel
Montre-le, et on pourra peut-être t'aider....

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
mapeh est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/07/2009, 18h03   #9
Futur Membre du Club
 
Date d'inscription: juin 2009
Messages: 35
Par défaut

Citation:
Envoyé par mapeh Voir le message
Re-,
Tu as déjà un code de fait?
Montre-le, et on pourra peut-être t'aider....
C'est un programme à part realiser par quelqu'un d'autre

Sinon pour le bouton F1 j'ai pas compris la ligne
Code :
.InsertLines DebutCode + 1, S
Esmax666 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/07/2009, 15h20   #10
Futur Membre du Club
 
Date d'inscription: juin 2009
Messages: 35
Par défaut

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"
et pour ajouter une macro dans le module "thisworkbook" je fais comment?


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
Esmax666 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/07/2009, 15h44   #11
Inactif(ve)
 
Date d'inscription: juin 2007
Localisation: Belqique
Messages: 2 074
Par défaut

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"
Si le nom est Module1.
Je ne crois pas que ça fonctionne pour un module de feuille ou de classeur. (jamais essayer)
A+
LeForestier est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 21/07/2009, 17h32   #12
Futur Membre du Club
 
Date d'inscription: juin 2009
Messages: 35
Par défaut

non cela ne marche pas:
De plus, le fichier orignal s'appel "diesearbeitmap" et dans la version "francaise de word cela donne "thisworkbook" :/
Esmax666 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 15h58.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.