XL 2019 VBA problème Then

  • Initiateur de la discussion Initiateur de la discussion jrmy34
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jrmy34

XLDnaute Nouveau
Bonjour à tous,
et d'avance un grand merci pour votre aide à chaque fois c'est un plaisir et un soulagement.

J'ai tapé ce code et je n'arrive pas à comprendre pourquoi Excel me le signal en erreur ...
Je vous ai mis la ligne en question en rouge.

VB:
Private Sub CommandButton1_Click()
    Dim Feuil As Worksheet
    Dim MDP
    
    On Error Resume Next
        If Me.TextBox1.Value = "" Then
        MsgBox "Veuillez saisir votre Login !", vbOKOnly + vbExlamation, "Erreur ...!"
        Exit Sub
        End If
        
        If Me.TextBox2.Value = "" Then
        MsgBox "Veuillez saisir votre Mot de passe !", vbOKOnly + vbExlamation, "Erreur ...!"
        Exit Sub
        End If
        
    MDP = Application.WorksheetFunction.Index(Range("motdepasse"), Application.WorksheetFunction.Match(Me.TextBox1.Value, _
    Range("utilisateur"), 0), 1)
    
     If Me.TextBox2.Value <> MDP Then
    
     MsgBox "Votre mot de passe est incorrect !", vbOKOnly + vbCritical, "Erreur !"
    
        Else
        
        For Each Feuil In Sheets
        If Feuil.Name <> "Connexion" Then
        
           [COLOR=rgb(184, 49, 47)] If Application.WorksheetFunction.Index(Range("plage"), Application.WorksheetFunction.Match( _
            Me.TextBox1.Value, Range("utilisateur"), 0), Application.WorksheetFunction.Match(Feuil.Name, Range("entete"), 0)) = "oui"[/COLOR]
            
            Feuil.Visible = xlSheetVisible
            
            Else
            
            Feuil.Visible = xlSheetVeryHidden
        
        End If
        Next
     End If
    
    
End Sub
 
Bonjour Jrmy34

Peut-être comme ceci :
VB:
Private Sub CommandButton1_Click()
    Dim Feuil As Worksheet
    Dim MDP
    On Error Resume Next
    If Me.TextBox1.Value = "" Then
        MsgBox "Veuillez saisir votre Login !", vbOKOnly + vbExlamation, "Erreur ...!"
        Exit Sub
    End If
    If Me.TextBox2.Value = "" Then
        MsgBox "Veuillez saisir votre Mot de passe !", vbOKOnly + vbExlamation, "Erreur ...!"
        Exit Sub
    End If
    MDP = Application.WorksheetFunction.Index(Range("motdepasse"), Application.WorksheetFunction.Match(Me.TextBox1.Value, _
    Range("utilisateur"), 0), 1)
    If Me.TextBox2.Value <> MDP Then
        MsgBox "Votre mot de passe est incorrect !", vbOKOnly + vbCritical, "Erreur !"
    Else
        For Each Feuil In Sheets
            If Feuil.Name <> "Connexion" Then
                If Application.WorksheetFunction.Index(Range("plage"), Application.WorksheetFunction.Match(Me.TextBox1.Value, Range("utilisateur"), 0), Application.WorksheetFunction.Match(Feuil.Name, Range("entete"), 0)) = "oui" Then
                    Feuil.Visible = xlSheetVisible
                Else
                    Feuil.Visible = xlSheetVeryHidden
                End If
            End If
        Next
     End If
End Sub
 
bonjour
je ne vois pas la ligne en rouge mais je parierais a 10 contre 1 que c'est cette ligne qui plante
VB:
 MDP = Application.WorksheetFunction.Index(Range("motdepasse"), Application.WorksheetFunction.Match(Me.TextBox1.Value, _
    Range("utilisateur"), 0), 1)
cela dit un fichier avec quelque lignes comme exemple serait le bien venu
 
re
n'ayant pas ton classeur
je l'ai fat et testé dans un classeur neuf
j'ai bloqué les lignes que je ne peux pas tester
VB:
Private Sub CommandButton1_Click()
    Dim Feuil As Worksheet, MDP$, X&
     If Me.TextBox1.Value = "" Then MsgBox "Veuillez saisir votre Login !", vbOKOnly + vbExlamation, "Erreur ...!": Exit Sub
    If Me.TextBox2.Value = "" Then MsgBox "Veuillez saisir votre Mot de passe !", vbOKOnly + vbExlamation, "Erreur ...!": Exit Sub

    X = Application.IfError(Application.Match(Me.TextBox1.Value, Range("utilisateur"), 0), 0)    'on recherche l'utilisateur dans le range utilisateur
    If X = 0 Then MsgBox " le login est invalid!! veuillez recommencer!!": TextBox1 = "": TextBox2 = "": Exit Sub
    MDP = Application.Index(Range("motdepasse"), X, 1)

    If Me.TextBox2.Value <> MDP Then
        MsgBox "Votre mot de passe est incorrect !", vbOKOnly + vbCritical, "Erreur !": TextBox2 = ""
    Else
        'For Each Feuil In Sheets
            'If Feuil.Name <> "Connexion" Then
                'If Application.WorksheetFunction.Index(Range("plage"), Application.WorksheetFunction.Match(Me.TextBox1.Value, Range("utilisateur"), 0), Application.WorksheetFunction.Match(Feuil.Name, Range("entete"), 0)) = "oui" Then
                    'Feuil.Visible = xlSheetVisible
                'Else
                    'Feuil.Visible = xlSheetVeryHidden
                'End If
           ' End If
        'Next
    MsgBox "on est bon"
    End If
End Sub
 
Effectivement lol du code c'est rajouter pour colorer la ligne du coup ... pas de couleur.

Voici la ligne en rouge avec l'erreur mentionnée "Erreur de compilation, erreur de synthaxe"

VB:
If Application.WorksheetFunction.Index(Range("plage"), Application.WorksheetFunction.Match( _
            Me.TextBox1.Value, Range("utilisateur"), 0), Application.WorksheetFunction.Match(Feuil.Name, Range("entete"), 0)) = "oui"
 
Effectivement lol du code c'est rajouter pour colorer la ligne du coup ... pas de couleur.

Voici la ligne en rouge avec l'erreur mentionnée "Erreur de compilation, erreur de synthaxe"

VB:
If Application.WorksheetFunction.Index(Range("plage"), Application.WorksheetFunction.Match( _
            Me.TextBox1.Value, Range("utilisateur"), 0), Application.WorksheetFunction.Match(Feuil.Name, Range("entete"), 0)) = "oui"
Bonjour jrmy34

As-tu testé ma proposition ?

Rajouter un "Then" à la fin de la ligne.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
84
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
254
Réponses
4
Affichages
364
Réponses
2
Affichages
130
Retour