Bug pour bloquer des feuilles avec MDP
Bonjour à tous,
Ça fait déjà un moment qu'on m'as confié un petit projet à réaliser sur excel, le problème c'est que je suis totalement novice dans le sujet.
J'ai pas mal de petits programmes à faire, dont un qui me pose problème depuis quelques heures.
J'ai un bug lors de de la saisie du mot de passe pour bloquer mes feuilles, même si je rentre le bon, qui est "boum" Excel me dit que le mot de passe est incorrect et m'envoie une erreur.
J'ai utilisé https://www.excel-pratique.com/fr/vba/boites_de_dialogue.php pour m'aider.
A première vu je ne suis pas le seul mais personne ne répond à son sa question, dommage pour moi.
Le dernier service que j'ai à vous demander ; si jamais vous avez des pistes concernant les autres programmes a faire. Merci encore, car pour moi ça reste un peu flou dans les topics proposés.
Je vous envoie mon code, ainsi que le fichier au cas ou.
Private Sub CommandButton2_Click()
End Sub
Private Sub CommandButton3_Click()
ActiveSheet.Protect Password:="boum", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Private Sub CommandButton4_Click()
End Sub
Private Sub CommandButton5_Click()
Dim youpi As String
youpi = Sheets("Feuil2").Range("B10").Value
MsgBox youpi
End Sub
Private Sub CommandButton6_Click()
End Sub
Private Sub CommandButton7_Click()
Dim resultat As String
resultat = InputBox("Texte ?", "Titre")
End If
If resultat = "boum" Then
ActiveSheet.Unprotect ("Feuil1")
End If
End Sub
Private Sub Label1_Click()
End Sub
Private Sub MultiPage1_Change()
End Sub
Private Sub UserForm_Initialize()
With ComboBox1
.AddItem "LA CHANCLA"
.AddItem "MI AM BANADOR"
.AddItem "ISSOU"
.AddItem "YATANGAKI"
End With
For Each sh In Array("Feuil1", "Feuil2", "trois")
Sheets(sh).Visible = False
Next sh
End Sub
Private Sub ComboBox1_Change()
If ComboBox1.Value = "YATANGAKI" Then
TextBox1.Visible = False
Label1.Visible = False
Else
TextBox1.Visible = True
Label1.Visible = True
End If
For Each sh In Array("Feuil1", "Feuil2", "trois")
Sheets(sh).Visible = False
Next sh
For Each sh In Array("Feuil1", "Feuil2", "trois")
Sheets(sh).Visible = True
Next sh
End Sub
Private Sub CommandButton1_Click()
Dim op As String
Dim choi As Boolean
choi = True
op = ComboBox1.Value
MsgBox "Vous avez choisit l'option" & op & " Voulez-vous continuer ? "
If MsgBox("READY ?", vbQuestion + vbYesNo) <> vbYes Then
choi = False
MsgBox "Ca va tout casser ! "
Else
choi = True
End If
If choi = True Then
MsgBox " TANTANTANNNNNNNNNNN"
Else
MsgBox "Abort mission"
End If
End SubEt dans ThisWorkBook :
Private Sub Initialiser()
ActiveSheet.Protect Password:="boum", DrawingObjects:=True, Contents:=True, Scenarios:=True
End SubMerci de votre lecture et de votre temps.
- Messages
- 308
- Excel
- 2016
- Inscrit
- 15/06/2017
- Emploi
- Bénéficiaire de la sécurité de la vieillesse
Bonjour Jigghart, bonjour le forum,
Essai sans mettre de guillemet ... ActiveSheet.Protect Password:=boum, Dra......
Joseph
bonjour,
Cette macro ne va pas dans ThisWorkbook
Private Sub Initialiser()
ActiveSheet.Protect Password:="boum", DrawingObjects:=True, Contents:=True, Scenarios:=True
End SubDe toute façon tu ne peux déprotéger une feuille masquée qui n'est forcément pas "ActiveSheet"
A+
Bonjour Joseph, merci de votre réponse et de votre lecture. Je viens d'essayer votre solution, la même erreur survient alors.
Pour tester un peu, j'ai retiré le mot de passe comme ceci :
ActiveSheet.Protect , DrawingObjects:=True, Contents:=True, Scenarios:=TrueExcel m'indique alors que le mot de passe est incorrect, pourtant en supprimant cette ligne j'ai retiré le mot de passe non ?
Encore merci de ta réponse !
A Galopin01,
Merci pour cette précision et désolé de mon erreur un peu bête, je vais tenter de les protéger avant de les masquer, pour ce qui est de la dé-protection, je ne savais pas trop ce que ActiveSheet faisait, erreur de débutant je suppose.
Merci, je vais essayer de régler tout ça.
Bonjour, Pardonnez le double post.
Je reviens vers vous pour une petite question technique. Je n'ai pas eu trop le temps de m'occuper du projet entre temps.
J'ai tenté de corriger mes erreurs avec vos conseils, je vous remercie car ceux-ci marchent pour la protection.
Ce n'est, peut-être pas la meilleure façon de faire ce genre de travail mais voici par quoi j'ai remplacé le sous programme à l'initialisation. :
Private Sub UserForm_Initialize()
With ComboBox1
.AddItem "LA CHANCLA"
.AddItem "MI AM BANADOR"
.AddItem "ISSOU"
.AddItem "YATANGAKI"
End With
For Each sh In Array("Feuil1", "Feuil2", "trois")
Sheets(sh).Protect , DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets(sh).Visible = False
Next sh
End SubLa protection marche, à l'initialisation du classeur excel toutes mes feuilles et cellules sont protégées.
Cependant,a dé-protection semble poser problème.
Voici par quoi j'ai remplacé la dé-protection :
Private Sub CommandButton7_Click()
Dim resultat As String
resultat = InputBox("Texte ?", "Titre")
If resultat = "boum" Then
For Each sh In Array("Feuil1", "Feuil2", "trois")
Sheets(sh).Unprotect , DrawingObjects:=False, Contents:=False, Scenarios:=False
Next sh
End If
End SubJe suppose que l'erreur vient du fait que je veux modifier des fiches "protégés", mais est-ce possible de retirer la protection via VBA ? A moins que je ne me trompe totalement...
Merci encore pour vos conseils.
bonjour,
Sheets(sh).Unprotect 'est suffisantA+
Merci encore de votre réponse ! Tout marche, dommage que je ne puisse accéder aux feuilles qu'en fermant l'userForm.
Je laisse mon classeur en copie si quelqu'un en a l'utilité un jour. Je vais aussi mettre ce post terminé, mais j'ai encore de nombreuse interrogation pour finir le projet.
Merci à tous pour votre lecture et votre patience.