Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
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 23/03/2007, 13h57   #1
Big
Membre confirmé
 
Enseignant
Inscription : juillet 2003
Messages : 273
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : juillet 2003
Messages : 273
Points : 231
Points : 231
Envoyer un message via MSN à Big Envoyer un message via Skype™ à Big
Par défaut [WORD]lier une macro après publipostage

Bonjour, je sèche depuis plusieurs jours sur un problème épineux...

Je dispose d'un document Word, qui doit être fusionné à une DB Access. Le document généré est retravaillé dans un autre service.

Comme le document à retravailler est assez complexe, j'ai choisi de le transformer en formulaire Word, afin que seuls les champs de formulaire soient modifiés. Sur mes contrôles de champs de formulaires, j'ai placé des macros.

Voici mon problème : les macros doivent être attachées au formulaire généré par publipostage, et je n'y arrive pas.

Comment puis-je faire ?

Merci,
Big est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2007, 01h01   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Tu peux importer une macro exportée depuis ton document principal
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub ExporterFrmEtModules()
Dim LeFich
    For Each LeFich In ThisWorkbook.VBProject.VBComponents
        Select Case LeFich.Type
            Case 1 'module
                ThisWorkbook.VBProject.VBComponents(LeFich.Name).Export "D:\MesMacros\" & LeFich.Name & ".bas"
            Case 2 'module de class (ou feuille de calcul ???) à vérifier
                ThisWorkbook.VBProject.VBComponents(LeFich.Name).Export "D:\MesMacros\" & LeFich.Name & ".cls"
            Case 3 'userform
                ThisWorkbook.VBProject.VBComponents(LeFich.Name).Export "D:\MesMacros\" & LeFich.Name & ".frm"
        End Select
    Next
End Sub
Code :
1
2
3
4
5
6
7
8
Sub ImporterTousLesUserformsDunRépertoire()  'd'après SilkyRoad
Dim NomFich
    NomFich = Dir("D:\MesMacros\*.*")
    Do While NomFich <> ""
        Application.VBE.ActiveVBProject.VBComponents.Import (NomFich)
        NomFich = Dir
    Loop
End Sub
ou écrire ton code ligne par ligne
Code :
1
2
3
4
5
6
7
8
9
10
    Application.VBE.CodePanes(1).CodeModule.InsertLines _
	1, "Option Explicit"
    Application.VBE.CodePanes(1).CodeModule.InsertLines _
	2, "Sub Macro1()"
    Application.VBE.CodePanes(1).CodeModule.InsertLines _
	3, "Dim i as integer, j as integer"
    Application.VBE.CodePanes(1).CodeModule.InsertLines _
	4, "J = 12"
    '...
    '...
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h24.


 
 
 
 
Partenaires

Hébergement Web