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 02/01/2007, 09h13   #1
Membre régulier
 
Inscription : janvier 2003
Messages : 376
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 376
Points : 76
Points : 76
Par défaut [VBA-W] Macro de fermeture sous word

Bonjour et bonne année 2007

Je suis bloqué sur un point qui doit être très simple mais je suis tellement nul que je n'y arrive pas.

J'ouvre un document word (CB.doc) qui lance un publipostage via une macro à l'ouverture.
Une fois la fusion terminée, je me trouve avec un deuxième fichier word d'ouvert (lettre.doc)

Je voudrais qu'à la fin de ma macro se trouvant dans le document CB.doc, je puisse lui dire de fermer sans enregistrer le document cb.doc

J'ai trouvé que le code suivant:
Code :
ActiveDocument.Close (wdDoNotSaveChanges)
Le problème c'est qu'après la fusion, le document actif n'est plus cb.doc

Est ce que qq1 peut m'aider?

Nicolas
liop49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2007, 11h22   #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
Montre-nous un peu plus de ta macro car, une fois la lettre type créée, le document actif est cette lettre. Pour que CB.doc soit actif, tu dois faire
Citation:
Documents("CB.doc"). activate
ou
Windows(1).Activate
Ce que tu peux faire, à la fin de la fusion, c'est récupérer le nom du document créé
Code :
NomFichierCréé = Activedocument.name
et à la fin de ta macro, pour rester dans CB.doc
Code :
Documents(NomFichierCréé).close False
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2007, 12h02   #3
Membre régulier
 
Inscription : janvier 2003
Messages : 376
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 376
Points : 76
Points : 76
Merci au magnifique ouskel'n'or

Le problème a été résolu en indiquant à la fin de la macro :
Code :
1
2
Documents("CB.doc").Activate
Documents("CB.doc").Close False
Pour ceux que çà intéresserait voici le code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Private Sub Document_Open()
 
' Macro enregistrée le 08/12/2006 par liop49
'
 
 
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
            .LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
        End With
        .Execute Pause:=False
    End With
 
nomfich = Word.ActiveDocument.Name
 
 
 
Msg = "Voulez-vous enregistrer le CB " & vbCrLf & "Cliquez sur 'Oui' pour enregistrer"    ' Définit le message.
        Style = vbYesNo + vbQuestion    ' Définit les boutons.
        Title = "Demande d'enregistrement"    ' Définit le titre.
 
        Response = MsgBox(Msg, Style, Title) ' Affiche le message.
 
        If Response = vbYes Then    ' L'utilisateur a choisi Oui.
           Nom = InputBox("Merci d'indiquer le nom de la plante suivi du n° de lot", "Nom du Fichier")
 
 
 
            ChangeFileOpenDirectory "\\Repertoire mes douments\Yasmine\CONTROLES BOTANIQUES\"   'Spécifique pour Yasmine car c'est elle qui enregistre les CB sur son poste
            ActiveDocument.SaveAs FileName:=Nom, FileFormat:=wdFormatDocument, _
            LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
            :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
            SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
            False
'
            MsgBox ("Le fichier " & Nom & ".doc a bien été enregistré dans le répertoire" & vbCrLf & "Serveur-caill\Documents\Yasmine\CONTROLES BOTANIQUES")
 
            Else
 
 
        End If
 
 
 
 
Documents("CB.doc").Activate
Documents("CB.doc").Close False
 
End Sub
Merci à bientôt
liop49 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 07h32.


 
 
 
 
Partenaires

Hébergement Web