Message box perso avant l'enregistrement
Mon code si dessous fonctionne mais je ne sais pas quoi mettre sous case 1 et case2
case1 doit continuer l'enregistrement
case2 doit annuler l'action d'enregistrement
Merci pour votre aide
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Ma message box perso
MsgBoxPerso "Le prix sur les feuille suivantes ont changées :" & Chr(10) & Feuil1.Range("Z2") _
& Chr(10) & "- " & Feuil1.Range("Z3") _
& Chr(10) & "- " & Feuil1.Range("Z4") _
& Chr(10) & "- " & Feuil1.Range("Z5") _
& Chr(10) & "- " & Feuil1.Range("Z6") _
& Chr(10) & "- " & Feuil1.Range("Z7") _
& Chr(10) & "- " & Feuil1.Range("Z8") _
& Chr(10) & "- " & Feuil1.Range("Z9") _
& Chr(10) & "- " & Feuil1.Range("Z10") _
& Chr(10) & "- " & Feuil1.Range("Z11") _
& Chr(10) & "- " & Feuil1.Range("Z12") _
& Chr(10) & "- " & Feuil1.Range("Z13") _
& Chr(10) & "- " & Feuil1.Range("Z14") _
& Chr(10) & "- " & Feuil1.Range("Z15") _
& Chr(10) & "- " & Feuil1.Range("Z16") _
& Chr(10) & "- " & Feuil1.Range("Z17") _
& Chr(10) & "- " & Feuil1.Range("Z18") _
& Chr(10) & "- " & Feuil1.Range("Z19") _
& Chr(10) & "- " & Feuil1.Range("Z20") _
& Chr(10) & "- " & Feuil1.Range("Z21") & Chr(10) _
& " N'oublier pas de générer le PDF", "Attention:", vbExclamation, "Contin. d'enreg.", "Annuler"
Select Case reponse
Case 1
'Si le bouton cliqué est Enregistrer j'aimerais continuer l'enregistrement
Case 2
'Si le bouton cliqué est Annuler j'aimerais stoper l'enregistrement
End Select 'fin du choix
End SubSALUT
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
A metre dans dans un "Workbook" et non " Workbooksheet"
'Ma message box perso
Msg = "Le prix sur les feuille suivantes ont changées :" & Chr(10) & Feuil1.Range("Z2") _
& Chr(10) & "- " & Feuil1.Range("Z3") _
& Chr(10) & "- " & Feuil1.Range("Z4") _
& Chr(10) & "- " & Feuil1.Range("Z5") _
& Chr(10) & "- " & Feuil1.Range("Z6") _
& Chr(10) & "- " & Feuil1.Range("Z7") _
& Chr(10) & "- " & Feuil1.Range("Z8") _
& Chr(10) & "- " & Feuil1.Range("Z9") _
& Chr(10) & "- " & Feuil1.Range("Z10") _
& Chr(10) & "- " & Feuil1.Range("Z11") _
& Chr(10) & "- " & Feuil1.Range("Z12") _
& Chr(10) & "- " & Feuil1.Range("Z13") _
& Chr(10) & "- " & Feuil1.Range("Z14") _
& Chr(10) & "- " & Feuil1.Range("Z15") _
& Chr(10) & "- " & Feuil1.Range("Z16") _
& Chr(10) & "- " & Feuil1.Range("Z17") _
& Chr(10) & "- " & Feuil1.Range("Z18") _
& Chr(10) & "- " & Feuil1.Range("Z19") _
& Chr(10) & "- " & Feuil1.Range("Z20") _
& Chr(10) & "- " & Feuil1.Range("Z21") & Chr(10) _
& " vouler vous générer le PDF"
Title = "Attention:"
Style = vbYesNo + vbCritical + vbDefaultButton2
' Select Case reponse
'Case 1
'Si le bouton cliqué est Enregistrer j'aimerais continuer l'enregistrement
' Case 2
'Si le bouton cliqué est Annuler j'aimerais stoper l'enregistrement
' End Select 'fin du choix
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
MyString = "Oui" ' Effectue une action.
Else ' L'utilisateur a choisi Non.
MyString = "Non" ' Effectue une action.
End If
End SubEt pour ton message (variable "Msg"), tu peux l'écrire ainsi:
Msg = "Le prix sur les feuille suivantes ont changées :"
For i = 2 To 21
Msg = Msg & Chr(10) & "- " & Feuil1.Range("Z" & i).Value
Next i
Msg = Msg & Chr(10) & " N'oublier pas de générer le PDF"Ce sera plus lisible...
Merci bcp Amir, mais dans mon code de départ il s'agit d'une message box perso, apparemment ce n'est pas le cas dans ta proposition.
En fichier joint voici l'exemple qui te permettra de mieux comprendre au moment ou tu cliquera sur enregistrer.
(Pour info la message box perso est généré par la fonction en module1 de mon fichier)
Mon souci est de savoir quoi placer sous case2 pour sortir de l'enregistrement
Merci
J'ai essayé avec cancel = true mais rien à faire l'enregistrement ce fais quand même et ne ce stop pas!
...
Case 2
'Si le bouton cliqué est Annuler j'aimerais stoper l'enregistrement
cancel = true
End Select 'fin du choix
End SubBonjour,
Je relance car ca devient urgent pour mon travail!
J aimerais simplement savoir quoi mettre dans cette fin de code (en Case2) pour sortir de la procédure d'enregistrement
J'utilise une message box perso de ce type:
MsgBoxPerso "Le prix sur les feuilles suivantes à changés", "Attention:", vbExclamation, "Enregistrer", "Annuler"voici la fin de code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'....fin de code:
Case 2
'Si le bouton cliqué est Annuler j'aimerais stopper l'enregistrement, que dois-je mettre?
End Select
End Submerci pour votre aide