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 20/11/2006, 12h03   #1
Membre du Club
 
Inscription : décembre 2005
Messages : 264
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 264
Points : 46
Points : 46
Par défaut Fermer Word proprement depuis excel

Bonjour tout le monde,

je vais tenter d'exprimer mon problème :
depuis excel, je modifie un fichier word que j'utilise comme un template,
ensuite je demande à l'utilisateur d'enregistrer le fichier word modifié à l'endroit qu'il souhaite, de la manière suivante :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 fileSaveWordName = Application.GetSaveAsFilename(InitialFilename:="CR CAD-FT 59Rafale n°" & Sheets("Accueil").Cells(28, 3), fileFilter:="Word Files (*.doc), *.doc")
        If fileSaveWordName <> False Then
         With appwd
          .ActiveDocument.SaveAs Filename:=fileSaveWordName
             DoEvents
          .Quit
         End With
         Else
         '   appwd.Close
            appwd.Saved = False
          '  appwd.DisplayAlerts = False
            appwd.Quit
        End If
        Set appwd = Nothing
Le problème c'est que s'il clique sur annuler (de la fenêtre "enregistrer sous", je n'arrive pas à quitter proprement mon fichier word "template" dont l'application est représenté par la variable appwd : le fichier word template reste ouvert ... le fichier ~<mon fichier>.doc reste

Mon problème se situe donc dans le else
Code :
1
2
3
4
5
         Else
         '   appwd.Close
            appwd.Saved = False
          '  appwd.DisplayAlerts = False
            appwd.Quit
j'ai un peut tout essayé mais je n'y arrive pas.
J'espère avoir été clair et que qqun pourra m'aider
Merci d'avance
Australia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2006, 12h22   #2
Membre émérite
 
Avatar de BrunoM45
 
Homme
Assistant de Gestion - Responsable Informatique
Inscription : juillet 2003
Messages : 646
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 45
Localisation : France, Loiret (Centre)

Informations professionnelles :
Activité : Assistant de Gestion - Responsable Informatique
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : juillet 2003
Messages : 646
Points : 848
Points : 848
Australia

Dans ta procédure je rajouterais .close
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
fileSaveWordName = Application.GetSaveAsFilename(InitialFilename:="CR CAD-FT 59Rafale n°" & Sheets("Accueil").Cells(28, 3), fileFilter:="Word Files (*.doc), *.doc")
  With appwd 
    If fileSaveWordName <> False Then
      .ActiveDocument.SaveAs Filename:=fileSaveWordName
      DoEvents ' Je ne sais pas si c'est utile !?
      .ActiveDocument.Close
    Else
      ' Ferme le document sans enregistrement
       .ActiveDocument.Close wdDoNotSaveChanges
    End If
    ' Quitte l'application
    .Quit
  End With
Set appwd = Nothing
Essaye ça
__________________
Vous avez la solution à votre problème, pensez au tag :
est une touche qui appelle l'aide : Essayez, c'est assez performant et on trouve plein de choses.

La politesse est comme le zéro, qui, sans avoir de valeur en soi, en ajoute à toutes choses.
BrunoM45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2006, 14h38   #3
Membre du Club
 
Inscription : décembre 2005
Messages : 264
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 264
Points : 46
Points : 46
Ca marche,
bien BrunoM45

mais comment faites vous pour trouver ces constantes prédéfinies qui n'apparaissent pas dans l'aide (dans la mienne en tout cas)!!!

Par contre autre question (je sais c interdit mais ca a quand même pas mal à voir, enfin ca concerne le même code)

Lorsque je fais enregistrer sous un fichier qui existe déjà, il ne me dit pas :
le fichier "toto.doc" existe déjà, êtes vous sur de vouloir le remplacer ?

et ca je sais pas pourquoi non plus !!!
Australia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2006, 15h04   #4
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 n'as pas un "Application.displayAlerts = false" quelque part ?
Edit
Non, ce doit être ces deux lignes
Citation:
If fileSaveWordName <> False Then
.ActiveDocument.SaveAs Filename:=fileSaveWordName
Tu fournis un nom... S'il existe, tu devrais le savoir et donc, VBA doit assimiler ça à une acceptation implicite du nom proposé (???) Je suppose...
Pour avoir le message, il te faudrait tester l'existence du fichier (un dir sur le nom du fichier par exemple)
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2006, 19h27   #5
Membre émérite
 
Avatar de BrunoM45
 
Homme
Assistant de Gestion - Responsable Informatique
Inscription : juillet 2003
Messages : 646
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 45
Localisation : France, Loiret (Centre)

Informations professionnelles :
Activité : Assistant de Gestion - Responsable Informatique
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : juillet 2003
Messages : 646
Points : 848
Points : 848
C'est vrai que c'est étrange

Quand on est sur Word et que l'on enregistre un nouveau fichier
sous un nom qui existe, Word nous le dis et demande ce que l'on veux faire !

Mais en VBA, ça passe tout seul !?
Dites M'sieur Crosoft, mais pourquoi vous faites des choses comme ça !?
__________________
Vous avez la solution à votre problème, pensez au tag :
est une touche qui appelle l'aide : Essayez, c'est assez performant et on trouve plein de choses.

La politesse est comme le zéro, qui, sans avoir de valeur en soi, en ajoute à toutes choses.
BrunoM45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2006, 09h37   #6
Membre du Club
 
Inscription : décembre 2005
Messages : 264
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 264
Points : 46
Points : 46
Merci les gaziers
je clos
Australia 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 18h44.


 
 
 
 
Partenaires

Hébergement Web