Réaliser la base ci-joint

Bonjour

je viens de commencé a apprendre les code VBA, ce pendant j'ai crée la base ci joint

mon objectif et de crée une base sur la quelle il y'aura plusieurs utilisateurs (voir feuille utilisateur) mais chacun avec un accès limité des feuilles

pour l'instant le nom et le mot de passe; tout ce que j'écris sa marche

merci

Bonjour

Pas sûr d'avoir bien vu où est le besoin. Cependant :

Private Sub VALIDATION_Click()
Dim USER As Object
Set USER = Worksheets("Utilisateurs").ListObjects("Tableau1").DataBodyRange.Columns(1).Find(Me.USER.Text)
If USER.Offset(0, 1).Value = Me.PSWRD.Text Then
    MsgBox ("ID correct")
Else
    MsgBox ("ID incorrect")
End If
End Sub

Avec ce code et l'userform dans le fichier joint, le bouton "S'identifier" sur la page d’accueil permet de s'identifier. En cas de combinaison ID/MDP conforme, les actions s'executent (ici un msgbox ID correct) dans le cas contraire d'autres actions s'executent.
Je vous joint le fichier sur lequel j'ai réalisé le test (ID = A, MDP = B).

Ergotamine,

Rebonjour

le userform je l'ai crée sur la page Login s'il n'est pas visible en ouvrant exécuter le programme sur le visuel basic

ce que je voudrais il y a une feuille (utilisateur) que je veux mettre les noms des utilisateurs et leur mot de passe et feuilles qu'ils auront la permission d'accès.

je voudrais aussi le code permettant de retourner sur la feuille Login si on clique sur le bouton fermer qui se trouve sur la feuille accueil

merci

Bonjour,

En effet je n'avais pas vu la page Login comme elle était masquée.
Un second jet ci-joint :

Private Sub CommandButton1_Click()
Dim USER As Object, C%, WS As Worksheet
'Code se déclenchant au clic sur bouton
'Si TextBox1 est vide
If TextBox_utilisateur = "" Then
    'Message à l'utilisateur
    MsgBox "Saisie du nom d'utilisateur obligatoire.", vbInformation
    'sortie de la procédure
    Exit Sub
End If
'Même chose avec TextBox2
If TextBox_motpasse = "" Then
    MsgBox "Saisie du mot de passe obligatoire.", vbInformation
    Exit Sub
End If
'Lance la fonction VerifMDP en utilisant :
'- TextBox1 comme paramètre "utilisateur"
'- TextBox2 comme paramètre "MdP"
Set USER = Worksheets("Utilisateurs").ListObjects("Tableau1").DataBodyRange.Columns(1).Find(TextBox_utilisateur.Text)
If USER.Offset(0, 1).Value = TextBox_motpasse Then
    For C = 5 To Worksheets("Utilisateurs").ListObjects("Tableau1").ListColumns.Count
        If Worksheets("Utilisateurs").Cells(USER.Row, C) <> "" Then
            Worksheets(Worksheets("Utilisateurs").Cells(2, C).Value).Visible = True
            Else
            Worksheets(Worksheets("Utilisateurs").Cells(2, C).Value).Visible = False
        End If
    Next C
    'Si la fonction renvoie FAUX :
    Else
    For Each WS In Worksheets
        If WS.Name <> "Login" Then WS.Visible = False
    Next WS
End If
End Sub

Ergotamine

dsl mais ça ne marche pas il y a des erreurs

et n'oublie le coude du bouton fermer de la feuille accueil pour retourner à la feuille login

cordialement et dsl pour le dérangement

merci encore

Bonjour,

Il va falloir apporter des précisions et m'aider. "Ca ne marche pas", c'est à dire ?
- Quel est la situation initiale
- Quelle est la manipulation que vous réalisez
- Quel est le message d'erreur
- Quel est le résultat obtenu
- Quel est le résultat attendu

Pour le bouton fermer, afin de ne laisser que la feuille Login visible :

Private Sub CommandButton2_Click()
Dim WS As Worksheet
For Each WS In Worksheets
    If WS.Name <> "Login" Then WS.Visible = False
Next WS
End Sub

Ergotamine

ok merci

je voudrais que lorsque j'ouvre le fichier : seule le la feuille Login soit active

pour les utilisateur ex:

utilisateur 1 (admin ) tous les feuilles s'ouvre

utilisateur 2 (utilisateur) acces à feuille LN Ndazidja seulement

utilisateur 3 (utilisateur) accèse à feuille LN Ndzouani seulement

etc

sur le fiche que vous m'avez envoyer quand je clique sur entré sa ne s'ouvre pas

merci

Bonjour,

Merci pour les précisions.

Dans ce cas dans la feuille login :

Option Explicit
Private Sub CommandButton1_Click()
Dim USER As Object, C%, WS As Worksheet
'Code se déclenchant au clic sur bouton
'Si TextBox1 est vide
If TextBox_utilisateur = "" Then
    'Message à l'utilisateur
    MsgBox "Saisie du nom d'utilisateur obligatoire.", vbInformation
    'sortie de la procédure
    Exit Sub
End If
'Même chose avec TextBox2
If TextBox_motpasse = "" Then
    MsgBox "Saisie du mot de passe obligatoire.", vbInformation
    Exit Sub
End If
'Lance la fonction VerifMDP en utilisant :
'- TextBox1 comme paramètre "utilisateur"
'- TextBox2 comme paramètre "MdP"
Set USER = Worksheets("Utilisateurs").ListObjects("Tableau1").DataBodyRange.Columns(1).Find(TextBox_utilisateur.Text)
If USER.Offset(0, 1).Value = TextBox_motpasse Then
    For C = 4 To Worksheets("Utilisateurs").ListObjects("Tableau1").ListColumns.Count
        If Worksheets("Utilisateurs").Cells(USER.Row, C) <> "" Then
            Worksheets(Worksheets("Utilisateurs").Cells(2, C).Value).Visible = True
            Else
            Worksheets(Worksheets("Utilisateurs").Cells(2, C).Value).Visible = False
        End If
    Next C
    'Si la fonction renvoie FAUX :
    Else
    For Each WS In Worksheets
        If WS.Name <> "Login" Then WS.Visible = False
    Next WS
End If
TextBox_motpasse = ""
TextBox_utilisateur = ""
End Sub

Dans ThisWorkbook

Private Sub Workbook_Open()
Dim WS As Worksheet
For Each WS In Worksheets
    If WS.Name <> "Login" Then WS.Visible = False Else WS.Visible = True
Next WS
End Sub

Cf fichier joint pour le remplissage de la matrice des droits d'accès.

Peut être passer le masquage des feuilles en xlVeryHidden sur la propriété Visible.

Ergotamine.

Merci énormement

Rechercher des sujets similaires à "realiser base joint"