commande Application.Dialogs(xlDialogSaveAs).Show

olivier_bahrein

XLDnaute Junior
Bjr,

Je n'arrive pas à ouvrir la commande Application.Dialogs(xlDialogSaveAs).Show dans un répertoire déterminé.

J'ai essayé:

-1

Private Sub CommandButton3_Click()
ChDrive "D"
ChDir "D:\olvx"
Application.Dialogs(xlDialogSaveAs).Show "nom fichier.xls"
End Sub


-2
Private Sub CommandButton3_Click()
Application.Dialogs(xlDialogSaveAs).Show "D:\olvx\nom fichier.xls"
End Sub

-3
Private Sub CommandButton3_Click()
Application.Dialogs(xlDialogSaveAs).Show ("D:\olvx\nom fichier.xls")
End Sub

Mais rien à faire.

Le nom fichier.xls est bien reconnu par la commande mais pas de dossier précisé.

Comment faire ?

Merci,

Olivier./.
 

Creepy

XLDnaute Accro
Re : commande Application.Dialogs(xlDialogSaveAs).Show

Bonjour le Forum, Olivier,

Tiens il y avait longtemps que je n 'avais pas posté !!!

Donc Olivier voici ce que tu demandes :

Code:
Sub Test()
Dim Quoi As String
Quoi = Application.GetSaveAsFilename("d:\Base\", FileFilter:="Fichier Texte (*.txt), *.txt", Title:="Sauvez moi ....")
End Sub

Ici tu as "d:\Bases\", l'affichage se fera par défaut dans le répertoire base. Si tu avais "d:\Base" sans \ à la fin , Excel te proposera de sauvegarder le fichier "base.xls" dans "d:\", etc ...

A+

Creepy
 

olivier_bahrein

XLDnaute Junior
Re : commande Application.Dialogs(xlDialogSaveAs).Show

Chapeau Creepy.

Cela fait 1 jour que je cherche sur internet et que je ne trouvais pas. J'ai lu des blogs où de nombreuses personnes parlent de ce même problème et personne n'avait ta solution.

Je suis bluffé.

Amitiés,

Olivier./.

Tiens, j'ai aussi posté une question sur l'envoi d'une feuille excel en PJ par mail avec le client de messagerie par défaut de l'utilisateur. Aurais-tu un code à me proposer ?

Encore chapeau et...respect !
 

olivier_bahrein

XLDnaute Junior
Re : commande Application.Dialogs(xlDialogSaveAs).Show

Petit bémol:

La fenêtre enregistrer sous personnalisée (avec filtre sur type de fichier, nom de la boite de dialogue, répertoire précisé et nom de fichier précisé) apparaît bien à l'écran.

MAIS

Quand on clique sur "enregistrer", il ne se passe rien. Aucun fichier n'est enregistré ! (pas de message d'erreur).

as-tu une solution ?

Olivier./.
 

Creepy

XLDnaute Accro
Re : commande Application.Dialogs(xlDialogSaveAs).Show

RE All, Olivier,

La ligne de code que je t'ai doné ne fait que demander le nom du fichier et pas le sauvegarder. Voici ci-dessous un procédure complère commentée qui gère la sauvegarde, si le fichier existe ou pas !

Code:
Sub Sauver_Moi()
Dim Sauvegarde As Variant, Question As Integer
Sauvegarde = Application.GetSaveAsFilename("c:\dede.xls", FileFilter:="XLS (*.xls), *.xls", Title:="Sauvez moi vite ...")
' Demande ou sauver le doc et le nom à lui donner
If Sauvegarde = False Then Exit Sub
' Si click sur annuler, alors exit sub
If Dir(Sauvegarde) <> "" Then ' le fichier renseigné par l'utilisateur existe-t-il ?
   Question = MsgBox("Attention le fichier existe déjà" & Chr(13) & "Voulez vous le remplacer ?", vbQuestion + vbYesNo, "Attention...")
   ' Si oui, faut t-il l'effacer ?
   If Question = 6 Then ' Oui
      Kill Sauvegarde ' Efface
   Else ' Non
      Exit Sub ' Stop procédure
   End If
End If
ThisWorkbook.SaveAs Sauvegarde ' Sauvegarde
End Sub

Bonne continuation,

@+

Creepy
 

olivier_bahrein

XLDnaute Junior
Re : commande Application.Dialogs(xlDialogSaveAs).Show

Merci encore Creepy, ça marche.

Explique moi pour me je comprenne mieux:

1- L'appel de "Application.GetSaveAsFilename" affiche une boîte de dialogue "enregistrer sous" personnalisée mais sans fonctionalité c'est ça ? C'est à nous de paramétrer les titres, ficheirs, répertoires et tous les évènements associés.

2- Pourquoi les commandes:

ChDrive "D"
ChDir "D:\olvx"
Application.Dialogs(xlDialogSaveAs).Show


ou encore
Application.Dialogs(xlDialogSaveAs).Show ("D:\olvx")

ne fonctionnent-elles pas chez moi ? (ce qui simplifierait le code!).

Lorsque je les utilise, j'ai bien la boite de dialogue avec le bon nom de fichier mais ce n'est pas le répertoire souhaité qui s'affiche. En fait, c'est le dernier répertoire utilisé dans cette boîte auparavant qui s'affiche.


Encore merci,

Olivier./.
 

Creepy

XLDnaute Accro
Re : commande Application.Dialogs(xlDialogSaveAs).Show

Bonjour All,

1 - En faites la boite de dialogue n'est qu'un composant graphique destinée à paramétrer la lecture ou la sauvegarde de ton document. En plus c'est la même BdeD(Boite de Dialogue) seulement Excel la personnalise en fonction de ce qui est demandé (save ou load).

On pourrait dire que c'est un artifice graphique pour faciliter la sauvegarde de document ! Il en va de même pour tous les objets Excel(Boite de dialogue police, couleur, etc....). Elles se contentent de renvoyer une valeur il faut ensuite la traiter.

Effectivement il est possible de la personnaliser afin d'avoir quelque chose qui correspond bien à tes besoins.

2 - Chez moi cela fonctionne à condition que le répertoire existe. Chdiret Chdrive plantent si le répertoire ou le drive n'existent pas.
xlDialogSaveAs fonctionne aussi si je mets un répertoire qui existe je me rends dans ce répertoire, sinon il me propose ce que j'ai passé comme repertoire en nom de fichier.

Je ne peux pas t'en dire plus.

Si tu souhaites met un exemple en PJ, je regarderais.

a+

Creepy
 

kain_skybrace

XLDnaute Nouveau
Autre solution

Bonjour,

Voici la solution que j'utilise pour que l'utilisateur choisisse où enregistrer son fichier, avec un répertoir défini par avance, et un nom par défaut

Code:
chemin = Sheets("Feuil1").Cells(1, "A")
nom_defaut = Date & " - Titre"

ChDir chemin
Application.Dialogs(xlDialogSaveAs).Show (chemin & nom_defaut)

Bonne journée!
 

loots

XLDnaute Nouveau
Re : commande Application.Dialogs(xlDialogSaveAs).Show

Bonjour,
Cela fait un moment que je cherche en vain.
Je suis débutant et j'ai juste besoin de savoir comment, à l'ouverture d'un classeur, la procédure :

Application.Dialogs(xlDialogSaveAs).Show

est lancée, j'enregistre le nouveau classeur où je veux dans mon PC ou sur un serveur, et le nouveau fichier enregistré ne doit plus contenir cette macro au démarrage. C'est à dire que lorsque je vais ouvrir ce nouveau fichier, je n'aurai plus cette demande "enregistrer sous".

Est-ce possible ?

Pour résumé, j'aimerai que dans le nouveau fichier, ces deux lignes n'y soient plus :

Code:
Private Sub Workbook_Open()
MsgBox "ATTENTION, PENSE A BIEN ENREGISTRER CE FICHIER AILLEURS"
Application.Dialogs(xlDialogSaveAs).Show
End Sub

Merci beaucoup pour votre aide.
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
811

Statistiques des forums

Discussions
312 207
Messages
2 086 240
Membres
103 162
dernier inscrit
fcfg