XL 2010 Besoin d'une vba pour créer un message d'avertissement avant validation

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Linda42

XLDnaute Occasionnel
Bonjour,

Je souhaite mettre un message d'avertissement et une demande de confirmation de l'action qui sera afficher à l'activation du bouton de control lié à la macro ci-dessous.

Le message serait le suivant : "Attention, après validation de votre choix, les données saisies seront définitivement supprimées. Etes-vous certains de vouloir effacer les données?" Je souhaiterais qu'il y ai la possibilité de valider ce choix ou de l'annuler.

Merci pour votre aide.
Linda

VB:
Sub EffacementDesDonnées()
'
' EffacementDesDonnées Macro
'

'
    Range("L7:R76").Select
    Selection.ClearContents
    Range("T7:Z77").Select
    Selection.ClearContents
    Range("AB7:AH76").Select
    Selection.ClearContents
    Range("AJ77").Select
    ActiveCell.FormulaR1C1 = ""
    Range("AJ7:AP77").Select
    Range("AJ77").Activate
    Selection.ClearContents
    Range("AR7:AX76").Select
    Selection.ClearContents
    Range("AZ7:BF76").Select
    Selection.ClearContents
    Range("L81:R81").Select
    Selection.ClearContents
    Range("T81:Z81").Select
    Selection.ClearContents
    Range("AB81:AH81").Select
    Selection.ClearContents
    Range("AJ81:AP81").Select
    Selection.ClearContents
    Range("AR81:AX81").Select
    Selection.ClearContents
    Range("AZ81:BF81").Select
    Selection.ClearContents
    Range("L84:R84").Select
    Selection.ClearContents
    Range("T84:Z84").Select
    Selection.ClearContents
    Range("AB84:AH84").Select
    Selection.ClearContents
    Range("AJ84:AP84").Select
    Selection.ClearContents
    Range("AR84:AX84").Select
    Selection.ClearContents
    Range("AZ84:BF84").Select
    Selection.ClearContents
    Range("L88:R90").Select
    Selection.ClearContents
    Range("T88:Z90").Select
    Selection.ClearContents
    Range("AB88:AH90").Select
    Selection.ClearContents
    Range("AJ88:AP90").Select
    Selection.ClearContents
    Range("AR88:AX90").Select
    Selection.ClearContents
    Range("AZ88:BF90").Select
    Selection.ClearContents
    Range("L94:R96").Select
    Selection.ClearContents
    Range("T94:Z96").Select
    Selection.ClearContents
    Range("AB94:AH96").Select
    Selection.ClearContents
    Range("AJ94:AP96").Select
    Selection.ClearContents
    Range("AR94:AX96").Select
    Selection.ClearContents
    Range("AZ94:BF96").Select
    Selection.ClearContents
    Range("B106:F205").Select
    Selection.ClearContents
    Range("D112:E112").Select
End Sub
 
Solution
Bonjour,
Vous pouvez aussi simplifier votre code pour l'effacement :
VB:
Sub EffacementDesDonnées()
'
' EffacementDesDonnées Macro
'
If MsgBox("Attention, après validation de votre choix, les données saisies seront définitivement supprimées." & Chr(10) & _
        "Etes-vous certains de vouloir effacer les données?", vbYesNo, "WARNING") = vbYes Then
    'Trop tard !
    Range("L7:R76, T7:Z77, AB7:AH76,AJ7:AP77,AR7:AX76,AZ7:BF76,L81:R81,T81:Z81").ClearContents
    Range("AB81:AH81,AJ81:AP81,AR81:AX81,AZ81:BF81,L84:R84,T84:Z84,AB84:AH84").ClearContents
    Range("AJ84:AP84,AR84:AX84,AZ84:BF84,L88:R90,T88:Z90,AB88:AH90,AJ88:AP90").ClearContents
    Range("AR88:AX90,AZ88:BF90,L94:R96,T94:Z96,AB94:AH96,AJ94:AP96,AR94:AX96").ClearContents...
bonsoir

exemple
VB:
  Réponse = MsgBox("Attention, après validation de votre choix, les données saisies seront définitivement supprimées. Etes-vous certains de vouloir effacer les données? ; action irréversible", vbYesNo + vbQuestion)
   If Réponse = vbYes Then
' Données à supprimer
  end if
 
Bonsoir Linda, JM,
Avec ceci par ex :
VB:
Sub EffacementDesDonnées()
'
' EffacementDesDonnées Macro
'
If MsgBox("Attention, après validation de votre choix, les données saisies seront définitivement supprimées." & Chr(10) & _
        "Etes-vous certains de vouloir effacer les données?", vbYesNo, "WARNING") = vbYes Then
    'Trop tard !
    Range("L7:R76").ClearContents
    Range("T7:Z77").ClearContents
    Range("AB7:AH76").ClearContents
    ' ...
End If
End Sub
 
bonsoir

exemple
VB:
  Réponse = MsgBox("Attention, après validation de votre choix, les données saisies seront définitivement supprimées. Etes-vous certains de vouloir effacer les données? ; action irréversible", vbYesNo + vbQuestion)
   If Réponse = vbYes Then
' Données à supprimer
  end if
Merci JM27.

Sachant que j'ai plusieurs feuilles dans le classeur et que le bouton de control sera sur chaque feuille, faut-il préciser dans la vba que l'action sera à faire sur la feuille active uniquement ou sur toute les feuilles? Cette vba sera sur un module et non affecté à une feuille en particulier.
 
Bonjour
Si le bouton effacer est sur la même feuille que les données à effacer , il n'est pas nécessaire de la désigner , sachant que le macro dans ce cas s'effectuera sur la feuille active
il te suffira d'affecter cette macro à chaque bouton de chaque feuille
 
Dernière édition:
Bonjour,
Vous pouvez aussi simplifier votre code pour l'effacement :
VB:
Sub EffacementDesDonnées()
'
' EffacementDesDonnées Macro
'
If MsgBox("Attention, après validation de votre choix, les données saisies seront définitivement supprimées." & Chr(10) & _
        "Etes-vous certains de vouloir effacer les données?", vbYesNo, "WARNING") = vbYes Then
    'Trop tard !
    Range("L7:R76, T7:Z77, AB7:AH76,AJ7:AP77,AR7:AX76,AZ7:BF76,L81:R81,T81:Z81").ClearContents
    Range("AB81:AH81,AJ81:AP81,AR81:AX81,AZ81:BF81,L84:R84,T84:Z84,AB84:AH84").ClearContents
    Range("AJ84:AP84,AR84:AX84,AZ84:BF84,L88:R90,T88:Z90,AB88:AH90,AJ88:AP90").ClearContents
    Range("AR88:AX90,AZ88:BF90,L94:R96,T94:Z96,AB94:AH96,AJ94:AP96,AR94:AX96").ClearContents
    Range("AZ94:BF96,B106:F205,D112:E112").Select
    Range("AJ77").Select
    ActiveCell.FormulaR1C1 = ""
End If
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour