Excel - macro pour afficher une boite de dialogue

NoBaratin Messages postés 2 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 8 décembre 2008 - 4 déc. 2008 à 11:57
NoBaratin Messages postés 2 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 8 décembre 2008 - 8 déc. 2008 à 13:56
Bonjour,

Je souhaite afficher une boite de dialogue dans un fichier excel à la fermeture de celui-ci, à savoir "pensez à mettre à jour la version de ce fichier à tel endroit".
Je suis complètement débutant - j'ai déjà réalisé quelques macros mais à chaque fois je rame !, pourriez-vous m'aider ?
Cordialement,

NoBaratin

4 réponses

dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
4 déc. 2008 à 22:23
Bonsooir ,
une idee à exploiter
--------------------------------------------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim msg
msg = MsgBox("pensez à mettre à jour la version de ce fichier à tel endroit", _
vbInformation + vbOKCancel)

If msg = vbOK Then
Cancel = False
ElseIf msg = vbCancel Then
Cancel = True
End If
End Sub
----------------------------------------------------------

Bonne chance
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
5 déc. 2008 à 16:03
Salut,

Pour commencer :

tu n'es pas dans le bon theme !... Pour Excel et plus generalement le VBA c'est ici :

--->  Thèmes / [forum-VISUAL-BASIC_1.aspx Visual Basic 6] / [theme-LANGAGES-DERIVES_287.aspx Langages dérivés] / [theme-VBA_244.aspx VBA] /

Non non !!! ne reposte pas ailleurs on continu malgré tout avec celui-ci !

Pour preciser un peu la reponse de dedenet2: comme toujours il est bien de dimensionner une variable mais c'est encore mieux de la typer pour limiter sa taille en memoire.
Donc ici une MsgBox renvoi un long , on peut donc declarer la variable msg comme suit:

Dim msg As Long

comme le VB reserve toujours des surpprises, en regardant bien on trouve un type specifique pour les MsgBox qui permet de reduire encore un peut plus la place prise en memoire par la variable:

Dim msg As VbMsgBoxResult

L'autre avantage ici est que le VBE te donnera automatiquement la liste des reponses possibles au moment ou tu auras ecrit :

msg =

A+
0
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
5 déc. 2008 à 21:49
Bonjour ,

bigfish_le vrai ,
Tu as raison , je dois "typer" les variables.
Je ne le fais pas toujours.
Pour "as VbMsgBoxResult" , je ne connaissais pas.
C'est vrai ,c'est mieux.
Merci

Aucune nouvelle de Nobaratin !
A+
0
NoBaratin Messages postés 2 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 8 décembre 2008
8 déc. 2008 à 13:56
Bonjour,
Merci à tous, mais c'est que je n'ai pas encore eu le temps de tester ces différentes propositions...
Je vous tiens au courant.
0
Rejoignez-nous