VBA Excel et bouton annuler dans une boite de dialogue [Résolu]

xurael 3 Messages postés mardi 20 septembre 2005Date d'inscription 2 janvier 2006 Dernière intervention - 30 déc. 2005 à 15:32 - Dernière réponse : xurael 3 Messages postés mardi 20 septembre 2005Date d'inscription 2 janvier 2006 Dernière intervention
- 2 janv. 2006 à 17:01
J'ai créé un fichier avec du vb pour simplifier la prise des données sur des feuilles excel.
A un moment je veux enregristrer le document et j'utilise ca : (clique sur bouton qui déclenche l'enregistrement)

Private Sub b_save_Click()
Dim Filename As String
Filename = "Donner un nom"
Application.Dialogs(xlDialogSaveAs).Show Filename
End Sub

Il marche bien sauf que je voudrais recueuillir l'action de l'utilisateur sur la boite de dialogue "saveas".
Je voudrais savoir si la personne a appuyé sur le bouton "Annuler" ou "Enregistrer"

Je ne connais pas la commande qui me donne cette information.

Merci de l'aide
Afficher la suite 

6 réponses

cs_chapata 215 Messages postés mercredi 2 février 2005Date d'inscription 9 avril 2010 Dernière intervention - 30 déc. 2005 à 15:44
+3
Utile
Salut

essai
if (Application.Dialogs(xlDialogSaveAs).Show Filename) = false then msgbox"Annuler par l'utilisateur"
else
msgbox "Validerpar l'utilisateur"
end if

ChaPaTa
Cette réponse vous a-t-elle aidé ?  
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 30 déc. 2005 à 15:48
+3
Utile
Salut,



J'ai déposé une source pour détecter l'appui sur le bouton Cancel de l'InputBox.

Tu dois pouvoir très facilement l'adapter à la boite de dialogue SaveAs. (voir mes sources)


Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
Cette réponse vous a-t-elle aidé ?  
xurael 3 Messages postés mardi 20 septembre 2005Date d'inscription 2 janvier 2006 Dernière intervention - 2 janv. 2006 à 17:01
+3
Utile
Merci kalobit
Mais j'ai pu résoudre mon second problème. D'alleurs je mets en dessous le bout de code que j'ai utilisé pour mon problème, j'espère que ca aidera d'autres amateur de VBA comme moi.

Private Sub b_save_Click()


Dim Filen As String
Dim boitesaveas As String
'Permet de donner un nom par défaut au tableau à sauvegarder
Filen = "Donner un nom !"
'Permettra de faire afficher la boite de dialogue avec un nom de fichier par défaut
boitesaveas = Application.Dialogs(xlDialogSaveAs).Show(Filen)
If boitesaveas = True Then
'Dans le cas où il enregistre
End
Else
'Dans le cas où il annule
End If

End Sub
Cette réponse vous a-t-elle aidé ?  
xurael 3 Messages postés mardi 20 septembre 2005Date d'inscription 2 janvier 2006 Dernière intervention - 30 déc. 2005 à 16:14
0
Utile
Merci à manu et chapata !
Vos solutions sont trés proches et satisfaits ma demande par contre ca me créait un autre soucis
J'avais écris de tel manière à mettre un nom de fichier par défaut mais avec la méthode que vous proposez ce n'est plus possible.
Je vais creuser le sujet pour savoir comment le contourner.
cs_chapata 215 Messages postés mercredi 2 février 2005Date d'inscription 9 avril 2010 Dernière intervention - 30 déc. 2005 à 16:18
0
Utile
Ok sans souci, bon courage et bonne fête.
N'oubli pas de valider nos posts.

ChaPaTa
kalobit 169 Messages postés mardi 15 juillet 2003Date d'inscription 7 avril 2008 Dernière intervention - 2 janv. 2006 à 16:08
0
Utile
Salut,

essaye avec application.getsaveasfilename qui renvoi false en cas d'annulation et que tu peux parametré à ta guise

La fonction ne fait que renvoyer un nom de fichier, il ne te reste plus qu'à coder l'enregistrement du fichier (application.saveas)

Et bonne année

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.