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

XL 2016 Boîte de dialogue

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.
 

JM27

XLDnaute Barbatruc
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

  • 2020 09 01 Permis de Travail COVID19 officiel.xlsm
    303.8 KB · Affichages: 9

Lucio

XLDnaute Junior
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...
 

JM27

XLDnaute Barbatruc
Bonjour
Sur quel fichier
Quand ?
Comment ?
En faisant quoi ?
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?
Cela ne veut rien dire : impossible de t'aider , je pense que tu ne donnes pas le bon fichier.
 

Lucio

XLDnaute Junior
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

  • 2020 09 01 Permis de Travail COVID20 officiel.xlsm
    283.3 KB · Affichages: 7
  • Mode protégé.png
    120.4 KB · Affichages: 11
  • Modereset.png
    118.7 KB · Affichages: 8
  • ModeBog.png
    89.8 KB · Affichages: 7

JM27

XLDnaute Barbatruc
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:

Lucio

XLDnaute Junior
En effet ! Merci bcp
 

Discussions similaires

Réponses
9
Affichages
168
Réponses
5
Affichages
415
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…