VBA - arguments dans boites de dialogue

J

JYP

Guest
Depuis que j'ai découvert ce site, et quelques autres, je progresse à pas de géants en VBA ! Mais je suis tombé sur un problème dont je ne trouve pas la solution : comment faire pour passer (et récupérer) des arguments lors de l'affichage d'une boite de dialogue standard (EXCEL 2000 Windows)
Exemple :
Application.Dialogs(xlDialogSaveAs). Show
affiche la boite de dialogue bien connue obtenue de manière classique par la fonction "Sauvegarder sous".
Comment passer des arguments, par exemple pour suggérer un chemin et un nom de fichier, ou un format CSV, et comment récupérer et exploiter éventuellement ce qui aura été saisi ?
Merci aux bonnes volontés qui voudront bien se dévouer pour m'aider !
 
S

sylsyl

Guest
Bonjour JYP,

je pense que ceci devrais faire l'affaire (XL 97)

Sub Savedd()
Dim mypath As String
ChDrive "G" 'peut etre inutile, depend du type de DD, pour moi G est un lecteur reseau et je dois le mettre.
ChDir "G:\essai XL\" 'chemin par defaut
mypath = ActiveWorkbook.Application.GetSaveAsFilename("Nom par defaut", "Excel Files (*.xls),*.xls", , "Mets ici le titre de la fenetre")
If mypath = "False" Then ActiveWorkbook.SaveCopyAs FileName:=spath
' tu devras peut etre remplacer False par Faux ?
End Sub

A++, Sylsyl.
 
J

JYP

Guest
OK sylsyl,
Merci beaucoup pour ta réponse, mais ce n'est pas ce que j'attends. Je souhaite pouvoir utiliser les boites de dialogue STANDARD d'excel affichables avec "Application.dialogs(nom de la boite).Show". Le cas de la sauvegarde n'est qu'un exemple parmi d'autres.
L'affichage fonctionne bien, mais je ne trouve pas de solution pour passer et récupérer des arguments.
Merci quand même et bonne journée.
JYP
 
S

sylsyl

Guest
Salut,

En effet il y a 2 methodes pour faire la meme chose :

- la premiere (getopenfilename et getsaveasfilename) ne permet que d’ouvrir et sauver.
L’avantage est quelle est personnalisable et que tu peux recuperer facilement les donnees rentrees par l’utilisateur.

- la deuxieme (celle que tu sembles preferer) avec dialogs est plus complete car elle permet de tout faire (changer la police, sauver, etc), elle est personnalisable mais tu ne peux pas recuperer les donnes entrees par l’utilisateur. (c'etait ta premieres questions...)
Pour cette derniere elle s’ecrit
I_am_a_boolean_variable = Application.dialogs(xldialogopen).show(argument1, argument2, etc)

Regarde l’aide VBA pour les argument en fonction de la fenetre affichee (entre « dialogs » en recherche puis cherche « dialogbox argument list » - j’ai XL en anglais)

Un exemple pour completer
application.dialogs(xlDialogOpen).show arg1:="c:\document\xls\*.xls" 'pour afficher les fichiers ".xls"

ai-je repondu a ta question ? donner des indices ? fait cligner des yeux ?

A++, Sylsyl.
 

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 625
Membres
103 608
dernier inscrit
rawane