XL 2016 Boîte de dialogue

  • Initiateur de la discussion Initiateur de la discussion Lucio
  • Date de début Date de début

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 !

Lucio

XLDnaute Junior
Bonjour,
j'aimerais qu'une boîte de dialogue apparaisse à chaque fois que j'appuie sur un bouton de commande reset en demandant la confirmation du reset. Qui peut m'aider svp?
Et serait-ce possible que ca fonctionne quand la feuille est protégée?
Merci d'avance de votre aide.
 
Bonjour
Comme je t'ai dit au post 9 , si tu mets un mot de passe il faut le gérer dans la macro.
ci joint un fichier avec un mot de passe : toto
qui te permets de faire un reset.
pour le mot de passe , il faut aller dans la Feuille MotDePasse qui est en VeryHidden en B2
pour le modifier :
- Impérativement Déprotéger la feuille permis travaux dangereux avec l'ancien mot de passe
- il faut changer la valeur de cette cellule B2 sur la feuille MotDePasse en B2
- Changer le mot de passe dans la macro TestMotDePasse
Impérativement dans cet ordre


Nota : il faudra aussi protéger ton projet VBA pour un mot de passe , sachant que sur excel
Tout mot de passe est facilement crackable.

Nota : les propositions des autres contributeurs sont aussi OK.
 

Pièces jointes

Bonjour
Comme je t'ai dit au post 9 , si tu mets un mot de passe il faut le gérer dans la macro.
ci joint un fichier avec un mot de passe : toto
qui te permets de faire un reset.
pour le mot de passe , il faut aller dans la Feuille MotDePasse qui est en VeryHidden en B2
pour le modifier :
- Impérativement Déprotéger la feuille permis travaux dangereux avec l'ancien mot de passe
- il faut changer la valeur de cette cellule B2 sur la feuille MotDePasse en B2
- Changer le mot de passe dans la macro TestMotDePasse
Impérativement dans cet ordre


Nota : il faudra aussi protéger ton projet VBA pour un mot de passe , sachant que sur excel
Tout mot de passe est facilement crackable.

Nota : les propositions des autres contributeurs sont aussi OK.
Merci bcp pour les astuces, c'est vraiment top. En fait, j'ai verrouillé des cellules dans le but de ne pas pouvoir modifier les descriptifs lors de la protection de la feuille. Certaines cellules ou je dois inscrire du texte ne sont pas verrouillées. Le problème que je rencontre c'est que quand je reset la feuille une boite de dialogue "erreur exécution 1004" s'affiche, Est-ce normal' il y a t'il une possibilité pour ne plus avoir ce bog?
Par contre quand la feuille n'est pas protégée ca fonctionne bien...
 
Bonjour
Sur quel fichier
Quand ?
Comment ?
En faisant quoi ?

Cela ne veut rien dire : impossible de t'aider , je pense que tu ne donnes pas le bon fichier.
 

Pièces jointes

bonsoir
le code de ton fichier

VB:
Private Sub CommandButton1_Click()
    If MsgBox("Voulez vous vraiment faire un RESET de la page?", vbYesNo + vbInformation) = vbYes Then
        For Each Elem In Me.Shapes
            If TypeName(Elem.OLEFormat.Object) = "CheckBox" Then
                Elem.OLEFormat.Object.Value = False
             ElseIf TypeName(Elem.OLEFormat.Object) = "OLEObject" Then
            If Elem.OLEFormat.progID Like "*CheckBox*" _
            Then Elem.OLEFormat.Object.Object.Value = False
        End If
        Next
        For Each Adr In Split("D38,D23,J23,E1,E9,E10,G5,G6,G7,G26,P5,P6,P7,M8,N19,I26,Q26,S26,O31,O38,R12,R26,S31,H44,E45,R45,G51,O51,D53,H54,H51,P53,P54,C57,I58,F59,G63,H64,P63,P64", ",")
        Me.Range(Adr) = vbNullString
        Next
 
    End If
End Sub

Le code du mien
Code:
Private Sub CommandButton1_Click()

    If MsgBox("Voulez vous vraiment faire une RAZ", vbYesNo + vbInformation) = vbYes Then
        Me.Unprotect     'Motdepasse si existe
        For Each Elem In Me.Shapes
            If TypeName(Elem.OLEFormat.Object) = "CheckBox" Then
                Elem.OLEFormat.Object.Value = False
            ElseIf TypeName(Elem.OLEFormat.Object) = "OLEObject" Then
                If Elem.OLEFormat.progID Like "*CheckBox*" _
                Then Elem.OLEFormat.Object.Object.Value = False
            End If
        Next
        For Each Adr In Split("D38,D23,J23,E1,E9,E10,G5,G6,G7,G26,P5,P6,P7,M8,N19,I26,Q26,S26,O31,O38,R12,R26,S31,H44,E45,R45,G51,O51,D53,H54,H51,P53,P54,C57,I58,F59,G63,H64,P63,P64", ",")
            Me.Range(Adr) = vbNullString
        Next
    Me.Protect     'Motdepasse si existe
    End If
End Sub

cherchez l'erreur !!!😛
une info : tu as supprimé deux lignes !!!! ( ceci expliquant cela !)
Si tu fais des modifs avant de comprendre les lignes de programme , cela ne va pas le faire 😉
pour info : tous les fichiers que l'on t'as fourni fonctionnaient !!!
 
Dernière édition:
bonsoir
le code de ton fichier

VB:
Private Sub CommandButton1_Click()
    If MsgBox("Voulez vous vraiment faire un RESET de la page?", vbYesNo + vbInformation) = vbYes Then
        For Each Elem In Me.Shapes
            If TypeName(Elem.OLEFormat.Object) = "CheckBox" Then
                Elem.OLEFormat.Object.Value = False
             ElseIf TypeName(Elem.OLEFormat.Object) = "OLEObject" Then
            If Elem.OLEFormat.progID Like "*CheckBox*" _
            Then Elem.OLEFormat.Object.Object.Value = False
        End If
        Next
        For Each Adr In Split("D38,D23,J23,E1,E9,E10,G5,G6,G7,G26,P5,P6,P7,M8,N19,I26,Q26,S26,O31,O38,R12,R26,S31,H44,E45,R45,G51,O51,D53,H54,H51,P53,P54,C57,I58,F59,G63,H64,P63,P64", ",")
        Me.Range(Adr) = vbNullString
        Next
 
    End If
End Sub

Le code du mien
Code:
Private Sub CommandButton1_Click()

    If MsgBox("Voulez vous vraiment faire une RAZ", vbYesNo + vbInformation) = vbYes Then
        Me.Unprotect     'Motdepasse si existe
        For Each Elem In Me.Shapes
            If TypeName(Elem.OLEFormat.Object) = "CheckBox" Then
                Elem.OLEFormat.Object.Value = False
            ElseIf TypeName(Elem.OLEFormat.Object) = "OLEObject" Then
                If Elem.OLEFormat.progID Like "*CheckBox*" _
                Then Elem.OLEFormat.Object.Object.Value = False
            End If
        Next
        For Each Adr In Split("D38,D23,J23,E1,E9,E10,G5,G6,G7,G26,P5,P6,P7,M8,N19,I26,Q26,S26,O31,O38,R12,R26,S31,H44,E45,R45,G51,O51,D53,H54,H51,P53,P54,C57,I58,F59,G63,H64,P63,P64", ",")
            Me.Range(Adr) = vbNullString
        Next
    Me.Protect     'Motdepasse si existe
    End If
End Sub

cherchez l'erreur !!!😛
une info : tu as supprimé deux lignes !!!! ( ceci expliquant cela !)
Si tu fais des modifs avant de comprendre les lignes de programme , cela ne va pas le faire 😉
pour info : tous les fichiers que l'on t'as fourni fonctionnaient !!!
En effet ! Merci bcp
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Problème Code VBA
Réponses
9
Affichages
383
Réponses
21
Affichages
2 K
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
45
Réponses
2
Affichages
335
Réponses
20
Affichages
1 K
Retour