Message Box macro

Bonjour à tous

Je suis bloquer sur une boite de dialogue, pourriez vous me dire ou est le problème ?

Sub Importation_effacer()
'
' Importation_effacer Macro
'

'
    Rows("3:1048576").Select
    Selection.ClearContents
    Range("B3").Select

    If MsgBox("Voulez vous vraiement effacer le contenu Importation ?", vbYesNo + vbCritical + vbDefaultButton2, "Attention")
    End If

End Sub

Merci par avance

@+ Filou

Bonjour,

le souci vient du test que tu fais sur la valeur que retourne ta msgbox, contrairement à ce qu'on pourrait penser, vbYesNo renverra comme valeur, soit vbYes, soit vbNo, vbYes est égal à 6, et vbNo à 7.

Si tu veux continuer dans le cas où la personne appuyerait sur "Oui", alors le test devient:

    If MsgBox("Voulez vous vraiement effacer le contenu Importation ?", vbYesNo + vbCritical + vbDefaultButton2, "Attention") = vbYes then
    End If

Bonjour Filou80,

Je te propose le code suivant...à adapter le cas échéant

Sub Importation_effacer()
'
' Importation_effacer Macro
'

'
    Dim lRep As Long        'GVS : Déclaration de la variable recevant la réponse de la msgbox
    Dim oSheet As Worksheet 'GVS : Recommandation de déclaration
    Dim oRange As Range     'GVS : Recommandation de déclaration

    Set oSheet = ThisWorkbook.Sheets(1)  'GVS: Ajuster le numéro de feuille le cas échéant
    Set oRange = oSheet.UsedRange.Rows   'GVS: Sélection des lignes utiles de la feuille

    lRep = MsgBox("Voulez vous vraiement effacer le contenu Importation ?", vbYesNo + vbCritical + vbDefaultButton2, "Attention")

    If lRep = vbYes Then
        'Si la réponse est OUI, code pour effacer le contenu de la feuille
        oRange.ClearContents  'Si c'est bien toutes les lignes de la feuille que l'on veut effacer
        Range("B3").Select
    End If

    'On fait le ménage
    Set oRange = Nothing
    Set oSheet = Nothing
End Sub

Bonjour,

le souci vient du test que tu fais sur la valeur que retourne ta msgbox, contrairement à ce qu'on pourrait penser, vbYesNo renverra comme valeur, soit vbYes, soit vbNo, vbYes est égal à 6, et vbNo à 7.

Si tu veux continuer dans le cas où la personne appuyerait sur "Oui", alors le test devient:

    If MsgBox("Voulez vous vraiement effacer le contenu Importation ?", vbYesNo + vbCritical + vbDefaultButton2, "Attention") = vbYes then
    End If

Bonjour

Le box apparait bien mais même sans appuyer elle s'éxécute.

Comment faire pour qu'elle sexecute quand on appui sur oui ?

@+ Filou

Bonjour,

le souci vient du test que tu fais sur la valeur que retourne ta msgbox, contrairement à ce qu'on pourrait penser, vbYesNo renverra comme valeur, soit vbYes, soit vbNo, vbYes est égal à 6, et vbNo à 7.

Si tu veux continuer dans le cas où la personne appuyerait sur "Oui", alors le test devient:

    If MsgBox("Voulez vous vraiement effacer le contenu Importation ?", vbYesNo + vbCritical + vbDefaultButton2, "Attention") = vbYes then
    End If

Bonjour

Le box apparait bien mais même sans appuyer elle s'éxécute.

Comment faire pour qu'elle sexecute quand on appui sur oui ?

@+ Filou

Bonjour,

il faut mettre le coe à n'excécuter que si c'est Oui, entre le Then et le End If

Rechercher des sujets similaires à "message box macro"