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 Sub

Et dans ThisWorkBook :

Private Sub Initialiser()

ActiveSheet.Protect Password:="boum", DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub

Merci de votre lecture et de votre temps.

17cla-aide.xlsm (23.71 Ko)

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 Sub

De 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:=True

Excel 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 Sub

La 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 Sub

Je 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 suffisant

A+

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.

16cla-aide.xlsm (24.88 Ko)
Rechercher des sujets similaires à "bug bloquer feuilles mdp"