Probleme avec ce "end if"

Bonjour sans arret il me met un message erreur de style "IF" sans " bloc "end if", ou alors else sans if, alors que tout y figure, j'ai cherché sur les forum, et en interne mais la je séche

un coup de main ?

voici la macro

'mode administrateur

Private Sub CommandButton1_Click()

If TextBox1.Text = "12345" Then ThisWorkbook.Unprotect Sheets("Accueil").CommandButton4.Visible = False

If TextBox1.Text = "12345" Then UserForm2.Show

Sheets("Accueil").CommandButton7.Visible = True

'bouton deconnexion

Sheets("Accueil").CommandButton5.Visible = True

UserForm1.Hide

'mode gestionnaire

'visiblité sur tout mais aucune modification

If TextBox1 = "XXXXXXXX" Then Sheets("Accueil").CommandButton4.Visible = False

If TextBox1.Text = "XXXXXXXX" Then UserForm2.Show

Sheets("Accueil").CommandButton7.Visible = True

Sheets("Accueil").CommandButton5.Visible = True

If TextBox1 = "XXXXXXXX" Then Sheets("Accueil").CommandButton4.Visible = False

If TextBox1.Text = "XXXXXXXX" Then UserForm2.Show

Sheets("Accueil").CommandButton7.Visible = True

Sheets("Accueil").CommandButton5.Visible = True

MsgBox "mot de passe incorrect", vbOKOnly + vbExclamation

Sheets("Accueil").CommandButton7.Visible = False

Sheets("Accueil").CommandButton5.Visible = False

'Exit Sub

End If

End Sub

Bonjour,

Dans ce type d'erreur, généralement le message ne fournit une signalisation valide que moins d'une fois sur deux...

Exemple : s'il te dit If sans End If, tu as sans doute plus de chance de trouver un Next sans For ou vice versa...

Mais il arrive que le message soit bon ou presque, comme dans ton cas où un End If est orphelin de son If initial !

Un conseil : en indentant correctement ton code, ce type d'erreur se détecte très facilement...

Cordialement.

Bonjour,

Tu utilises le test If sous une forme sans End If en une seule ligne, par conséquent, tu devrait enlever le End If qui est dans l'avant dernière ligne. La prochaine fois met le fichier en disposition au lieu de copier coller ton code dans le message qui décourage les intervenants. Ou bien met le code entre les balises codes pour la lisibilité.

salut raja,

voici le fichier, pour le mot de passe il figure dans le copié collé de la macro.

Bonjour,

mon truc c'est une le "if" tapé, je mets immédiatement le "endif" en dessous puis j'insère le code, ça évite des désagréments

P.

bonjour,

en effet vu que mais "IF" sont linéaire j'ai enlevé le "END IF" et cela fonctionne pour le moment, mais il y a un autre sousi, j'ai rajouter dans les dernière ligne du code le "else", car si le mot de passe n'est pas correct alors cela renvoi a une "msgbox", mais il me dit "erreur de compilation ELSE sans IF", merci.

bonjour

ElseIf permet d'ajouter plusieurs conditions à la suite, Si la condition 1 (mot de passe =12345) est vraie, les instructions 1 sont exécutées (Denied) puis nous sortons de l'instruction If (qui débute avec If et finit à End If), alors avec ElseIf la procédure n est oblige de parcourir toute l'instruction If

essayer ca

Private Sub Denied()
ThisWorkbook.Unprotect
Sheets("Accueil").CommandButton4.Visible = False
UserForm1.Hide
UserForm2.Show
Sheets("Accueil").CommandButton7.Visible = True
Sheets("Accueil").CommandButton5.Visible = True
End Sub

Private Sub CommandButton1_Click()
If TextBox1.Text = "270184" Then
Denied
ElseIf TextBox1 = "goreski531" Then
Denied
ElseIf TextBox1 = "caso531" Then
Denied
Else
MsgBox "mot de passe incorrect", vbOKOnly + vbExclamation
Sheets("Accueil").CommandButton7.Visible = False
Sheets("Accueil").CommandButton5.Visible = False
Exit Sub
End If
End Sub

et penser a ca

Private Sub CommandButton1_Click()
If ComboBox1.ListIndex = -1 Then
MsgBox "veuillez selectionner une feuille"
Exit Sub
Else
Worksheets(ComboBox1.Value).Select
UserForm2.Hide
End If
End Sub
Rechercher des sujets similaires à "probleme end"