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 21/06/2007, 11h41   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Par défaut [VBA-Word] lancement de macro à la fermeture de fichier

Bonjour

j'ai un petit problème avec une macro censée lancer des opérations à la fermeture du fichier:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Document_Close()
Dim FichierAOuvrir As String
Dim i As Integer
Dim a As Integer
    UserForm4.Show
    FichierAOuvrir = "lefichier.doc"
    With Word.Documents.Application.FileSearch
        .FileName = FichierAOuvrir
        .LookIn = Documents.Application.ActiveDocument.Path
        .Execute
        a = .FoundFiles.Count
        If a <> 0 Then
            i = a
            Word.Application.Documents.Open (.FoundFiles.Item(a))
        End If
    End With
        UserForm1.Show
    ThisDocument.Saved = True
    ThisDocument.Close
End Sub
Cette macro doit ouvrir un fichier et lancer deux UserForm, mais en fonction de la position des lignes de commande, la macro exécute certaines et pas d'autres.
Par exemple, si je place Userform1 et 4 au début, elle n'ouvrira que UserForm1 et passera à la sauvegarde du document.
Si je place les Userform à la fin, alors lefichier s'ouvre mais les userform non.
etc
Ai-je oublié quelque chose lors de l'écriture de la macro?
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 20h56   #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
Citation:
Par exemple, si je place Userform1 et 4 au début, elle n'ouvrira que UserForm1 et passera à la sauvegarde du document.
Quand tu auras fermé Userform1 ! Pas avant.
Tu ne peux pas exécuter le code d'une macro qui active un userform (Userformn.show. Le code suivant cette ouverture ne s'exécutera que l'userform désactivé.
A partir de ce constat, organise ton code autrement.
Par exemple, lancer une partie du code depuis l'un des deux userforms.
Si tu as toujours un pb, tu dis
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 15h32   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Ok j'ai trouvé

le problème venait du fait que je finissais mes macros par end.

Code :
1
2
3
4
Sub ...
instruction
End
End Sub
J'ai remplacé ce End par Unload Me et ça marche nickel chrome.
Merci beaucoup pour ton aide
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h11.


 
 
 
 
Partenaires

Hébergement Web