[RESOLU] Afficher boutons suivant niveau

cathodique

XLDnaute Barbatruc
Bonsoir,

Je n'ai pas encore compris l'utilisation de la propriété tag, je vous propose un fichier pour afficher ou masquer des boutons pour 4 niveaux d'accès.

La feuille1 contient 8 boutons activeX cachés à la fermeture du fichier.

En feuille2, il y a le nom de l'utilisateur, son mot de passe et son niveau d'accès.

Je voudrais que les boutons s'affichent suivant les niveaux d'accès:
"Admin" --> aura accès à tous les boutons
"Collaborateur" --> aura accès aux boutons de son niveau et inférieur (collaborateur, Instructeur et secrétaire)
"Instructeur" --> aura accès aux boutons de son niveau et inférieur (Instructeur et secrétaire)
"Secrétaire" --> aura accès seulement aux boutons de son niveau (secrétaire)

N'ayant jamais utiliser la propriété Tag, serait-il possible de mettre à profit cette dernière?

Le processus est le suivant: On sélectionne le nom en A2 et le pass en B2 (bouton validation), le niveau est vérifié sur la feuille2 colonne C, si tout est bon les boutons concernés s'affichent.

Avec mes remerciements.
 

Pièces jointes

  • Controles visibles par niveau - Copie.xlsm
    35.5 KB · Affichages: 26
Dernière édition:

Si...

XLDnaute Barbatruc
Re : Afficher boutons suivant niveau avec tag

salut

Pour répondre strictement à la demande... (pas de tag disponible avec ce type de contrôle)
Maintenant le choix par listes de validation est totalement inefficace pour une protection !
 

Pièces jointes

  • Controles visibles ou pas (VBA).xlsm
    41.9 KB · Affichages: 28

cathodique

XLDnaute Barbatruc
Re : Afficher boutons suivant niveau avec tag

Bonjour Si,

Merci beaucoup pour ton aide. En effet, le genre de bouton n'a pas le propriété "Tag", je n'avais pas fait attention.

Aurais-tu un fichier exemple qui traite cette propriété par exemple pour textbox?

Autre question, car là je m'embrouille un peu avec les différents contrôles. Il y a les contrôles de formulaire et ActiveX.

Les premiers sont des shapes et les seconds sont des OLEobjets, si ce n'est pas ça alors je n'ai rien compris.

D'autant plus, que pour masquer ces boutons ActiveX j'ai utilisé OLEobjet
VB:
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim B As OLEObject
    For Each B In ActiveSheet.OLEObjects
        B.Visible = False
    Next B
End Sub
et dans le tien c'est shapes. Pas bien compris cette histoire.
VB:
For n = 1 To 8
    ActiveSheet.Shapes("Bt" & n).Visible = 0
  Next
Pourquoi ça fonctionne, pour OleObject et Shapes? En te remerciant,bonne journée.
 

Si...

XLDnaute Barbatruc
Re : Afficher boutons suivant niveau avec tag

re

Les contrôles «Formulaire» et «ActiveX» sont des Objets qui se ressemblent sans plus.
Le second type est bien plus riche en propriétés (VBA) qu'on peut afficher puis modifier rapidement (en Mode Création, Clck bouton droit).

Shape est un objet particulier couvrant les 2 types donc avec des propriétés adaptées.
Code:
Dim n as Byte
For n = 1 To 8
  ActiveSheet.Shapes("Bt" & n).Visible = 0
Next
permet de cacher tous les objets, Formulaire et ActiveX, dont le nom commence par Bt, alors que
Code:
Dim B As Shape
For Each B In ActiveSheet.Shapes
   B.Visible = False
Next
permet de cacher tous les objets (Formulaire et ActiveX)

OleObjects couvre les contrôles ActiveX

Code:
Dim B As OLEObject
For Each B In ActiveSheet.OLEObjects
  B.Visible = False
Next
cache tous les objets ActiveX de la feuille sans distinction de nom.
Pour se restreindre à une catégorie de contrôles ActiveX, il faut la définir. Exemples
Code:
Dim B As OLEObject
For Each B In ActiveSheet.OLEObjects
  If TypeName(B.Object) = "CommandButton" Then B.Visible = False
Next

Ou
Code:
Dim B As OLEObject
For Each B In ActiveSheet.OLEObjects
  If B.Name Like "Co*" Then B.Visible = 1
Next
_________________________________________________________________________
 

cathodique

XLDnaute Barbatruc
Re : [RESOLU] Afficher boutons suivant niveau

Très sympa de ta part, j'apprécie beaucoup. je cerne beaucoup mieux les contrôles de formulaire et ActiveX.

Mon grenier VBA s'est enrichi de 3 Fichiers.

Encore merci et je te souhaite un très bon week-end.
 

Discussions similaires

Statistiques des forums

Discussions
314 222
Messages
2 107 470
Membres
109 836
dernier inscrit
SophieL16