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 12/09/2011, 12h09   #1
Invité de passage
 
Inscription : mai 2011
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 24
Points : 4
Points : 4
Par défaut SaveAs - Sauvegarde non désirée.

Bonjour à tous.

Lorsque j'utilise SaveAs, j'ai la fenêtre d'enregistrement qui s'ouvre, me plaçant par défaut dans "mes documents" et me proposant le nom NomDuFichier par défaut.

Mon souci est que dès que cette boite apparait, mon fichier s'enregistre... alors que je n'ai pas encore cliqué sur Oui, ni Non.
Comment faire pour tester la réponse de la fenêtre ?
Il faut probablement incorporer un "If quelquechose"... mais lequel ?

Merci.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim DateDuJour As String
'Formatage de la date pour éviter les "/" car ça passe mal dans les fichiers...
DateDuJour = Format(Date, "yyyymmdd")
'Rajouter "Fichier_" devant.
NomDuFichier = "Fichier_" & DateDuJour
 
'Si le contenu existe (sous entendu différent de 0) alors l'ajouter à la fin de la chaine
If Len(ContenuTextBoxVille) <> 0 Then
NomDuFichier = NomDuFichier & "_" & ContenuTextBoxVille
End If
If Len(ContenuTextBoxSite) <> 0 Then
NomDuFichier = NomDuFichier & "_" & ContenuTextBoxSite
End If
NomDuFichier = NomDuFichier & ".doc"
 
On Error Resume Next
 
    ActiveDocument.SaveAs FileName:=NomDuFichier
    Application.Dialogs.Item(wdDialogFileSaveAs).Show
Betadine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 12h49   #2
Invité de passage
 
Inscription : mai 2011
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 24
Points : 4
Points : 4
Je pense être sur une piste...

Je crois que le Application.SaveAs doit se trouver après Application.Dialogs.Item(wdDialogFileSaveAs).Show, mais dans ce cas, la fenêtre de dialogue ne connait pas le nom par defaut que je veux attribuer...

Qu'en pensez vous ?

Merci.
Betadine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 13h05   #3
Invité de passage
 
Inscription : mai 2011
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 24
Points : 4
Points : 4
J'ai trouvé la solution... ça fonctionne comme je veux... mais je ne sais pas pourquoi car je ne vois pas de grosse différence a part la présence du with.



J'ai remplacé les deux dernières lignes

Code :
1
2
ActiveDocument.SaveAs FileName:=NomDuFichier
Application.Dialogs.Item(wdDialogFileSaveAs).Show
par :

Code :
1
2
3
4
With Dialogs(wdDialogFileSaveAs)
     .name = NomDuFichier
     .Show
End With
...toutefois, si quelqu'un souhaite m'expliquer, je suis preneur.

Merci à tous.
Betadine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 13h08   #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 597
Points : 1 597
Envoyer un message via MSN à carden752
Bonjour,

Tu fais deux choses différentes :
D'abord, tu sauvegardes le fichier
Code :
ActiveDocument.SaveAs FileName:=NomDuFichier
et ensuite tu appelle la boite de dialogue enregistrer sous...
Code :
Application.Dialogs.Item(wdDialogFileSaveAs).Show
__________________
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
Vieux 12/09/2011, 13h29   #5
Invité de passage
 
Inscription : mai 2011
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 24
Points : 4
Points : 4
Aaah. D'accord.

Alors qu'avec le with je me contente d'appeller la fenêtre en lui passant des arguments défini par moi et de faire le reste à la main ensuite.

ok. Merci beaucoup.
Betadine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 15h49   #6
Invité de passage
 
Homme
Inscription : août 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 15
Points : 1
Points : 1
Bonjour Betadine,

Si je comprends ton code à pour fonction : d'enregistrer un document dans un répertoire si il y existe déjà il ajoute un chiffre au nom du code.

Je serai intéressé par ton code peux-tu le publier en entier stp ?

Merci d'avance.
bakaladiakouba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 11h33   #7
Invité de passage
 
Inscription : mai 2011
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 24
Points : 4
Points : 4
Oulà... 1000 excuses pour le retard...

Il est peut etre trop tard Bakaladiakouba, si c'est le cas j'en suis désolée.

Pour le code, non, il n'ajoute pas un numéro, il reprend les données saisies par l'utilisateur.

Le voici. J'ai créé un User form contenant diverses textbox.
En premier je récupère le contenu de la textbox que je met dans une variable "ContenuTextBoxSite" par exemple...

Si la variable n'est pas vide, je l'utilise pour former le nom final du fichier.

Et je fais ensuite ouvrir une fenetre windows qui va permettre a l'utilisateur d'indiquer le chemin où va aller s'enregistrer le fichier. Si jamais je veux l'imposer, il me suffit d'utiliser la ligne que j'ai ajoutée en commentaire.



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
Private Sub BoutonSauvegarder_Click()
Dim DateDuJour As String
DateDuJour = Format(Date, "yyyymmdd")
 
NomDuFichier = DateDuJour
If Len(ContenuTextBoxSite) <> 0 Then
NomDuFichier = NomDuFichier & "_" & ContenuTextBoxSite
End If
If Len(ContenuTextBoxVille) <> 0 Then
NomDuFichier = NomDuFichier & "_" & ContenuTextBoxIntervenant
End If
NomDuFichier = NomDuFichier & "_Compta.doc"
 
On Error Resume Next
    'Impose l'enregistrement à l'endroit et au nom défini.
    'ChangeFileOpenDirectory "D:\azer\"
    'ActiveDocument.SaveAs FileName:=NomDuFichier
 
     With Dialogs(wdDialogFileSaveAs)
     .name = NomDuFichier
     .Show
     End With
 
BoutonExportPDF.Visible = True
 
End Sub
Betadine 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 23h53.


 
 
 
 
Partenaires

Hébergement Web