Gestion des acces avec userform en fonction du login

pas tout a fait ça

ce que j'aimerai c'est plus vis a vis de plusieurs userform comme dans le fichier poster plus haut

j'ai 5 ou 6 userform et en fonction des droit accordé dans le tableau l'affichage ce fait

tu vois ce que je veut dire ?

c'est la que je bloque

j'ai pas regardé le fichier mais d’après si tu fais un truc comme ça sa devrait faire ce que tu veux

Private Sub Workbook_Open()

    userform1.Show

End Sub

Private Sub CommandButton1_clicked()

    For i = 1 To Range("a65536").End(xlUp).Row
        If textbox1.Value = Sheets("authentification").Range("a" & i).Value Then
            If textbox2.Value = Sheets("authentification").Range("b" & i).Value Then
                Call appel
            End If
            Exit For
        End If
    Next i

End Sub

Sub appel()

    Select Case textbox1.Value
        Case "patron": userform2.Show
        Case "admin": userform3.Show
        Case "employé": userform4.Show
    End Select

End Sub

le première code tu le mets dans "ThisWorkbook"

le deuxième code il va dans le userform1 dans le commandbutton_clicked() donc le clic du bouton je prefere te l'ecrire car je suis pas sur de ma syntaxe

avec textbox1 correspondant a la textbox ou tu demande l'identifiant

textbox2 correspond a la textbox du mdp

sheets("authentification") la feuille ou tu a tes identifiant en colonne A et les mot de pas en colonne B

et le troisième code dans un module a part

je pense que c'était un truc comme ca que tu voulais d'apres ce que j'ai compris

c'est une bonne piste merci icemake

dans le fichier de richi2casa dans this workbook il y a

Private Sub Workbook_Open()

GetSheets

VisibleFalse

Showme

End Sub

et dans l'userform

Option Explicit

Private Trial As Long

Private Sub cmdCheck_Click()

'Declare the variables

Dim AddData As Range, Current As Range

Dim user As Variant, Code As Variant

Dim PName As Variant, AName As Variant

Dim ws As Worksheet, ws2 As Worksheet, ws3 As Worksheet

Dim result As Integer

Dim TitleStr As String

Dim msg As VbMsgBoxResult

'Variables

user = Me.txtUser.Value

Code = Me.txtPass.Value

TitleStr = "Password check"

result = 0

Set Current = Sheet2.Range("O8")

'Error handler

On Error GoTo errHandler:

'Destination location for login storage

Set AddData = Sheet2.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)

'Check the login and passcode for the administrator

If user <> "" And Code <> "" Then

For Each AName In Sheet2.Range("T8:T108")

'If AName = Code Then 'Use this for passcode text

If AName = CLng(Code) And AName.Offset(0, -1) = user Then ' Use this for passcode numbers only

MsgBox "Welcome Back: – " & user & " " & Code

'record user login

AddData.Value = user

AddData.Offset(0, 1).Value = Now

'Add usernmae to the worksheet

Current.Value = user

'Change variable if the condition is meet

result = 1

'Unload the form

Sheet2.Visible = True

Sheet2.Select

Unload Me

'Show the navigation form

'frmNavigation.Show

Exit Sub

End If

Next AName

End If

'Check user login with loop

If user <> "" And Code <> "" Then

For Each PName In Sheet2.Range("H8:H108")

'If PName = Code Then 'Use this for passcode text

If PName = CLng(Code) And PName.Offset(0, -1) = user Then ' Use this for passcode numbers only

MsgBox "Welcome Back: – " & user & " " & Code

'record user login

AddData.Value = user

AddData.Offset(0, 1).Value = Now

'Add usernmae to the worksheet

Current.Value = user

'unhide worksheet for user

If PName.Offset(0, 1) <> "" Then

Set ws = Worksheets(PName.Offset(0, 1).Value)

ws.Visible = True

End If

'unhide worksheet for user

If PName.Offset(0, 2) <> "" Then

Set ws2 = Worksheets(PName.Offset(0, 2).Value)

ws2.Visible = True

End If

'unhide worksheet for user

If PName.Offset(0, 3) <> "" Then

Set ws3 = Worksheets(PName.Offset(0, 3).Value)

ws3.Visible = True

End If

'show sheet tab if hidden

ActiveWindow.DisplayWorkbookTabs = True

'Change variable if the condition is meet

result = 1

'Unload the form

Unload Me

'Show the navigation form

'frmNavigation.Show

Exit Sub

End If

Next PName

End If

'Check to see if an error occurred

If result = 0 Then

'Increment error variable

Trial = Trial + 1

'Less then 3 error message

If Trial < 3 Then msg = MsgBox("Wrong password, please try again", vbExclamation + vbOKOnly, TitleStr)

Me.txtUser.SetFocus

'Last chance and close the workbook

If Trial = 3 Then

msg = MsgBox("Wrong password, the form will close…", vbCritical + vbOKOnly, TitleStr)

ActiveWorkbook.Close False

End If

End If

Exit Sub

'Error block

errHandler:

MsgBox "An Error has Occurred " & vbCrLf & "The error number is: " _

& Err.Number & vbCrLf & Err.Description & vbCrLf & _

"Please notify the administrator"

End Sub

Private Sub UserForm_QueryClose _

(Cancel As Integer, CloseMode As Integer)

' Prevents use of the Close button

If CloseMode = vbFormControlMenu Then

MsgBox "Clicking the Close button does not work."

Cancel = True

End If

End Sub

j'ai trouvé ça pour lancé un userform a partir de son nom dans une cellule

Sub TEST()

'Cell A1 of Sheet1 contains the name of the UserForm

X = ActiveWorkbook.Sheets("Feuil1").Cells(1, 1).Value

VBA.UserForms.Add(X).Show

End Sub

du coup ce qu'il me manque dans un premier temps c'est lister automatiquement les noms des userform dans une colonne

puis adapter ce code sub TEST au code de richi2casa

problème je suis pas un grand spécialiste des macro

je joint le fichier avec les tableaux supplémentaires pour les userform

le code de richi2casa est trop compliqué pour mon niveau

je pense que le fichier final pourra être utile pour beaucoup

lister les userforms de manière automatique n'est pas une priorité

personnes pour un coup de main sur le code ?

J'ai essayé pas mal de chose, mais là, je bloque vraiment

J'ai vraiment besoin d'un sérieux coup de pouce

J'aimerais que lorsqu'on ouvre le classeur :

-Le classeur soit masqué pour tout utilisateur qui n'ont pas les droits

-À l'ouverture du classeur seul un userform de gestion des accès apparaisse

-Après connexion sur cet userform pour certain utilisateur seul un autre userform s'ouvre

-Seuls certains utilisateurs ne pourront voir que certaine feuil du classeur

-Seul l'admin a visu sur l'ensemble du classeur

-La gestion des droits d'accès par un tableau (feuil et userform)

Un grand merci d'avance a celles et ceux qui pourront m'apporter une aide

Bonjour

un essaie

a vous relire

bonjour iliyes

ça ne fonctionne pas

j'ai une manipulation particulière a faire ?

peux tu m’expliquer ?

bonjour

essaie comme USER : NOM1 et pass : 1234 et essai de voir dans la feuille LOGIN la partie

"Les feuilles que vous souhaitez que l'utilisateur d'avoir accès à sont choisis parmi

les blancs de validation des données sont ok comme le sont les doublons."

a vous relire


aussi met comme nom : Bill et pass: 5678 et vois les feuilles qui apparaissent

a vous relire

et c'est le même principe pour les userform ?

la gestion des feuilles était déjà dans le fichier posté je comprend pas bien ta modif ? ma demande est d'inclure les userfom dans ce principe de gestion des accés

bonjour

c'est peu être moi qui comprend mal ( )

si le lien au userform est depuis une feuille qui est caché!!! forcement la personne n'a pas accée.

j'espere que c'est la bonne réponse!!

a vous relire

en gros si bill se connecte alors ouverture de l'userform automatiquement qui est configuré dans le tableau de gestion des accès

si dans le tableau de gestion des accès bill n'a pas l’autorisation de visu sur aucune feuille mais a l'autorisation sur userform "test 1 " alors seul l'userform test 1 s'affiche après que bill ce soit connecté

ben!!! exact

si il y a le lien du userform dans la feuille (que bill a accée), ben!!! oui, et il n'auras pas un accée aux autres ( malgré que le userform peu utiliser les feuilles cachées)

a vous relire

il faudrait en faite qu'il n'y ai pas d'utilisation de lien directement

si pas de feuille autorisé mais qu'un userform alors tout le classeur et masqué seul l'userform autorisé s'affiche donc pas d'utilisation de lien

Bonjour

le raisonnement est correcte

mais on peu mettre le USERFORM au démarrage du fichier EXCEL

a vous relire

j'aurai vraiment besoin de ce fonctionnement là seul le userform login a ouverture du fichier et en fonction des droit classeur masqué et userform correspondant au droit accordé qui s'ouvre svp

Rechercher des sujets similaires à "gestion acces userform fonction login"