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 17/03/2011, 16h04   #1
Invité de passage
 
Femme
Formateur en informatique
Inscription : mars 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Formateur en informatique

Informations forums :
Inscription : mars 2011
Messages : 2
Points : 0
Points : 0
Par défaut Lancer une macro avant fusion en VB

Bonjour,

Je souhaiterais lancer une macro dans un "document à fusionner" juste avant de lancer la fusion dans WORD

La macro se trouve dans le modèle (.dot) de mon document à fusionner

Pouvez vous svp m'expliquer comment coder cela ?

PS.
1-J'ai juste un enregistrement dans mon fichier DATA.
2-Le lancement de la fusion se fait via un logiciel (que je ne maitrise pas !)

Merci

Céline
CCE13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 18h14   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 321
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 321
Points : 29 220
Points : 29 220
Salut,

L'application word possède bien un évènement MailMergeBeforeMerge

Il faut avant tout initier la gestion des évènements dans Word.

Code :
Public WithEvents wApp As Word.Application
Ensuite, il affecter à ce nouvel "wApp" objet l'application Word.
On peut le faire quand on veut et comme on veut, en général sur l'évènement document Document_Open()

Ensuite, on gère les évènement et dans ton cas, c'est avec :
Code :
1
2
3
Private Sub wApp_MailMergeBeforeMerge(ByVal Doc As Document, ByVal StartRecord As Long, ByVal EndRecord As Long, Cancel As Boolean)
 
End Sub
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 10h34   #3
Invité de passage
 
Femme
Formateur en informatique
Inscription : mars 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Formateur en informatique

Informations forums :
Inscription : mars 2011
Messages : 2
Points : 0
Points : 0
Bonjour

Merci pour votre réponse.

Voici ce que j'ai fais :

1- Dans le modèle (.dot) de mon document à fusionner j'ai créé un module de classe, dans lequel j'ai mis le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
Public WithEvents FApp As Word.Application
Private Sub FApp_MailMergeBeforeMerge(ByVal Doc As Document, ByVal StartRecord As Long, ByVal EndRecord As Long, Cancel As Boolean)
    Dim Réponse As Integer
    Réponse = MsgBox("Vous allez commencer la fusion : " & Doc.Name & "Voulez-vous continuez ?", vbYesNo, "MailMergeBeforeMerge Event")
If Réponse = vbNo Then
        Cancel = True
        MsgBox "Vous avez annuler la fusion  " & Doc.Name & "."
End If
If Réponse = vbYes Then
        Cancel = False
        MsgBox "YVous allez fusionner  " & Doc.Name & "."
End If
End Sub

2- puis ensuite toujours dans le modèle (.dot) de mon document à fusionner j'ai mis dans la partie ThisDocument le code suivant.

Code :
1
2
3
4
5
6
 
Dim X As New Classe1
 
Private Sub Document_open()
    Set X.FApp = Word.Application
End Sub

Sauf que lorsque j'appuie sur le bouton Fusionner vers un nouveau document mon événement ne se lance pas.
J'ai l'impression que l'événement de s'exécute pas !

Encore merci.

Céline
CCE13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 00h44   #4
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

Tu as autorisé l'exécution des macros sur tes ordinateurs clients.
Partie Sécurité des Macros de l'onglet Developpeur ou Bouton Office -> Options Word -> Centre de Gestion de la confidentialité -> Paramètres du centre de gestion de la confidentialité - > Paramètres des Macros.

Penses notamment à approuver le modèle d'objet du projet VBA.
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 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 19h30.


 
 
 
 
Partenaires

Hébergement Web