Boîte de dialogue "Enregistrer sous"

Bonsoir,

Lors de l'utilisation du code

Application.Dialogs(xlDialogSaveAs).Show

y a-t-il la possibilité de prédéfinir - par l'utilisation de variables - l'emplacement où doit être enregistré le nouveau fichier et/ou son nouveau nom et/ou son type ?

A vous relire.

Salut yvouille, ça fait un bail,

Essaie avec ceci :

Sub choixRepEtFichier()
Dim repertoire As String, nomFichier As String, extension As String
    repertoire = "c:\"
    nomFichier = "fichierTest"
    extension = ".xls"
    Application.Dialogs(xlDialogSaveAs).Show repertoire & nomFichier & extension
End Sub

Salut Vba-New,

Ca fait effectivement un bail Merci pour ta réponse.

J'ai essayé de modifier ton code de la manière suivante :

Sub choixRepEtFichier()
Dim repertoire As String, nomFichier As String, extension As String
    repertoire = "C:\Documents and Settings\yvouille\y_Excel\PK Post\"
    nomFichier = "fichierTestYvouille"
    extension = ".xlsm"
    Application.Dialogs(xlDialogSaveAs).Show repertoire & nomFichier & extension
End Sub

En ce qui concerne le chemin c'est parfait. Le dossier "PK Post" est correctement sélectionné. Par contre sous "Nom de fichier" j'ai le texte "fichierTestYvouille.xlsm" (avec des guillemets ainsi pré-affichées) et sous "Type de fichier" j'ai le type *.xlsx qui reste sélectionné. Bien entendu que si je clique sur "Enregistrer", ça bloque.

Penses-tu qu'il y a une possibilité de prédéfinir autrement les champs "Nom de fichier" et "Type de fichier" ?

A te relire.

Bonjour,

Vois ce lien qui peut t'aider je pense et dans lequel j'avais apporté une solution à TGV6633

Enregistrer sous chemin précis

Amicalement

Salut Dan,

Merci pour ta réponse.

Lors de mes recherches au sujet de ce problème, j’étais déjà tombé sur ce fil, mais je trouvais qu’il ne répondait pas exactement à ma demande.

J’ai initialement posé ci-dessus une question d’ordre général, afin de voir ce que je recevais comme réponse, mais il est bien entendu que dans la réalité, soit 1) il faudrait prédéfinir par des variables le chemin et/ou le type de fichier et laisser le choix à l’utilisateur de modifier le titre du nouveau fichier, soit 2) prédéfinir par des variables le nom et/ou le type du nouveau fichier et laisser le choix à l’utilisateur de modifier le chemin, soit 3)…….etc.

J’ai maintenant quand même effectué un essai sur la base du code que tu as fourni sur cet autre fil, en modifiant le chemin et en remplaçant les deux .xls par des .xlsm :

Sub test_Yvouille()
'Macro dan le 28/11/2010
Dim fichier As String
On Error Resume Next
ChDir "C:\Documents and Settings\yvouille\y_Excel\PK Post\"
fichier = Application.GetSaveAsFilename( _
    fileFilter:="Excel Files (*.xlsm), *.xlsm")
If fichier <> False Then ThisWorkbook.SaveAs fichier
End Sub

Ca correspond un peu à la situation 1) décrite ci-dessus. Le champ « Enregistrer sous » est alors correctement prédéfini, le dossier « PK Post » y est inscrit. Le champ « Nom du fichier » contient le nom du fichier de base que l'utilisateur pourrait modifier et le champ « Type de fichier » contient l’indication Excel Files (*.xlsm).

Par contre, si je clique sur « Enregistrer », le message « La fonctionnalité Projet VB ne peut pas être enregistrées dans des classeurs sans macro » apparaît bizarrement.

Amicalement

Salut,

Essaie comme ceci :

Sub test_Yvouille()
'Macro dan le 28/11/2010
Dim fichier As String
    On Error Resume Next
    ChDir "C:\Documents and Settings\yvouille\y_Excel\PK Post\"
    fichier = Application.GetSaveAsFilename( _
              fileFilter:="Excel Files (*.xlsm), *.xlsm")
    If fichier <> False Then ThisWorkbook.SaveAs fichier, FileFormat:=52
End Sub

La constante 52 de l'argument FileFormat correspond à xlOpenXMLWorkbookMacroEnabled. Cela signifie que les macros seront activées lors de l'enregistrement du fichier. Dans la mesure du possible, il faut renseigner cet argument lors de l'utilisation de la méthode SaveAs.

Re,

Par contre, si je clique sur « Enregistrer », le message « La fonctionnalité Projet VB ne peut pas être enregistrées dans des classeurs sans macro » apparaît bizarrement.

La macro se trouve bien dans le fichier que tu veux enregistrer ??

A te relire

Edit : Oups VBAnew, je ne n'avais pas rafraichit....

Merci à vous deux pour vos réponses.

Je suis désolé, je ne sais pas ce que j'ai fait la première fois , mais finalement vos deux solutions fonctionnent absolument indifféremment. J'avais plusieurs fichiers ouverts lors de mes premies essais, est-ce que le problème vient de là ?

Bonne journée.

La macro de Dan avant ma modification devait marcher si tu avais déjà enregistré une fois manuellement ton fichier en xlsm. La macro que j'ai ensuite modifiée marche normalement même si tu n'as pas enregistré ton fichier une première fois.

Merci vba-new pour cette explication complémentaire.

Je vais encore faire des essais avec tout ça et me permettrai de revenir à la charge avec d'éventuelles questions.

Vous me permettez de faire des progrès énormes

Bonnes salutations.

Rechercher des sujets similaires à "boite dialogue enregistrer"