Problème de code

Bonjour,

On m'a téléporté sur un problème dans une procédure, dont voici le code ci-dessous :

Private Sub CommandButton13_Click()
'MRI : je rajoute un test sur la présence du verrou ou non
If SheetExists(nomWSHisto) Then
    ModeVerrou = ActiveWorkbook.Worksheets(nomWSHisto).Cells(2, 2)
        If ModeVerrou = "Roue Libre" Then
            CAT2_autoFIT.Hide
            CAT2_Valeurs_IF.Show
        ElseIf ModeVerrou = "Verrou Total" Then
            If (Msgbox("Attention ! Le classeur est actuellement verrouillé. Après cette action, le classeur sera automatiquement déverrouillé. Voulez vous continuer ?", vbYesNo, "Confirmation de déverrouillage") = vbYes) Then
                Call Verrou_BoucleDeverrou("", "", True)
                CAT2_autoFIT.Hide
                CAT2_Valeurs_IF.Show
            End If
        End If
Else
    CAT2_autoFIT.Hide
    CAT2_Valeurs_IF.Show
End If
End Sub

Cette procédure permet ou non de verrouiller totalement les classeurs excel(sans possibilité d'écrire dessus). Il semblerait qu'un IF soit mal placé dans le code. Mais je vous avoue que je n'ai trouvé aucune solution au problème.

Si jamais vous avez des idées je suis preneur.

Merci d'avance.

Bonjour,

La logique dans cette procédure est bonne. Ce n'est pas un problème de "If" imbriqué.

Tu peux peut-être ajouter :

Private Sub CommandButton13_Click()
On Error Resume Next

Bonjour,

J'ai rien changé sur le principe...

Avec une démarche en mode pas à pas ça serait judicieux pour savoir où sa ne va pas

Private Sub CommandButton13_Click()
'MRI : je rajoute un test sur la présence du verrou ou non

If SheetExists(nomWSHisto) Then
    ModeVerrou = ActiveWorkbook.Worksheets(nomWSHisto).Cells(2, 2)
    If ModeVerrou = "Roue Libre" Then
        CAT2_autoFIT.Hide
        CAT2_Valeurs_IF.Show
    End If
    If ModeVerrou = "Verrou Total" Then
        MSG = MsgBox("Attention ! Le classeur est actuellement verrouillé. Après cette action, " & _
        "le classeur sera automatiquement déverrouillé." & Chr(10) & Chr(10) & _
        "Voulez vous continuer ?", vbInformation + vbYesNo, "Confirmation de déverrouillage")
        If MSG = vbYes Then
            Call Verrou_BoucleDeverrou("", "", True)
            CAT2_autoFIT.Hide
            CAT2_Valeurs_IF.Show
        End If
    End If
Else
    CAT2_autoFIT.Hide
    CAT2_Valeurs_IF.Show
End If

End Sub

Super !

Merci beaucoup à tous les deux

Le fait de passer la structure de ElseIf à If a réglé mon problème.

Rechercher des sujets similaires à "probleme code"