Droit d'accès à partir d'un Combobox

  • Initiateur de la discussion Initiateur de la discussion Leskwal
  • 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 !

Re : Droit d'accès à partir d'un Combobox

Bonjour Leskwal, salut camarchepas,

Une solution un peu plus simple :

Code:
Private Sub CommandButton_Valider_USER_Click()
Dim r1 As Range, r2 As Range, n As Byte
Set r1 = Columns(1).Find(ComboBox_Utilisateur, LookIn:=xlFormulas, LookAt:=xlWhole)
Set r2 = Columns(1).Find("*ACCES*", [COLOR="Red"]After:=r1[/COLOR], SearchDirection:=[COLOR="Red"]xlPrevious[/COLOR])
n = Mid(r2, InStr(r2, "ACCES") + 6, 1) 'ACCES et n sont séparés par un espace
MsgBox "Bonjour, vous êtes sur l'accès n° " & n & "." & Chr(10) & "J'aime " & Choose(n, "un peu.", "beaucoup.", "passionnément.")
End Sub

A+
 

Pièces jointes

Dernière édition:
Re : Droit d'accès à partir d'un Combobox

Bonjour à tous

J'ai donc essayé d'appliquer vos propositions à mon application réelle.

L'exemple que je vous avais fourni demandait de faire apparaitre des messages mais en réalité en fonction du niveau d'accès, un bouton déterminé (sur trois boutons) devient " ENABLED".
(En réalité ces boutons sont sur un autre USF qui apparait quand on valide la connexion...)

Tout est dans le fichier joint.

Merci d'avance pour votre patience.

Cordialement

Pascal
 

Pièces jointes

Re : Droit d'accès à partir d'un Combobox

Bonjour Leskwal,

On vous a laissé tomber, désolé.

La macro adaptée au nouveau fichier :

Code:
Private Sub CommandButton_Valider_USER_Click()
Dim r1 As Range, r2 As Range, txt$, i As Byte, cb As Object
Set r1 = Columns(1).Find(ComboBox_Utilisateur, LookIn:=xlFormulas, LookAt:=xlWhole)
Set r2 = Columns(1).Find("*-*", After:=r1, SearchDirection:=xlPrevious)
txt = Trim(Replace(r2, "-", ""))
For i = 1 To 3
  [COLOR="Red"]Set cb = Controls("CommandButton" & i)[/COLOR]
  cb.Enabled = InStr(cb.Caption, txt)
Next
End Sub

Si les 3 boutons sont dans un autre USF, compléter le code :

Code:
Set cb = [COLOR="red"]UserForm2.[/COLOR]Controls("CommandButton" & i)

A+
 

Pièces jointes

Re : Droit d'accès à partir d'un Combobox

Re,

Une autre solution, sans doute meilleure :

Code:
Private Sub CommandButton_Valider_USER_Click()
Dim tablo, r1 As Range, r2 As Range, i As Byte, cb As Object
[COLOR="Red"]tablo = Array("STAFF", "TECHNICIENS", "ASSISTANTES")[/COLOR]
Set r1 = Columns(1).Find(ComboBox_Utilisateur, LookIn:=xlFormulas, LookAt:=xlWhole)
Set r2 = Columns(1).Find("*-*", After:=r1, SearchDirection:=xlPrevious)
For i = 1 To 3
  Set cb = Controls("CommandButton" & i)
  cb.Enabled = InStr(r2, tablo(i - 1))
Next
End Sub

A+
 

Pièces jointes

Re : Droit d'accès à partir d'un Combobox

Vraiment, j'ai du mal.

Mon exemple de départ était finalement trop simple pour pouvoir appliquer vos propositions à ma petite application.

En fichier joint, un autre exemple support.

Encore Merci d'avance.

Cordialement

Pascal
 
Re : Droit d'accès à partir d'un Combobox

Re,

1) Dans Module1 :

Code:
Public r As Range [COLOR="Red"]'mémorise la variable[/COLOR]

2) Dans UserForm_log_user :

Code:
Private Sub CommandButton_Valider_USER_Click()
Set r = [Utilisateurs_Log].Find(ComboBox_Utilisateur, LookIn:=xlFormulas, LookAt:=xlWhole)
Unload Me
Boutons_a_activer.Show
End Sub

3) dans Boutons_a_activer :

Code:
Private Sub UserForm_Initialize()
Set r = [Utilisateurs_Log].Find("*-*", After:=r, SearchDirection:=xlPrevious)
CommandButton1.Enabled = InStr(r, "TECHNICIENS") = 0
CommandButton2.Enabled = InStr(r, "ASSISTANTES") = 0
CommandButton3.Enabled = True [COLOR="Red"]'pas nécessaire si l'on met la propriété à True...[/COLOR]
End Sub

Nota : dans le 1er USF, votre macro ComboBox_Utilisateur_Change était mal ficelée...

A+
 

Pièces jointes

- 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
Réponses
13
Affichages
430
Réponses
5
Affichages
416
Réponses
15
Affichages
447
Réponses
8
Affichages
294
Réponses
13
Affichages
306
Retour