Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 
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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…