définir utilisateur d'une case à cocher

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

B

BEUBZIR

Guest
Bonjour,
je cherche à faire un formulaire partagé entre différents service, et souhaiterais faire en sorte que certaines personnes puissent utiliser des cases à cocher, mais pas d'autres.
j'ai utilisé les cases à cocher sans savoir s'il y a un autre outil pour ce faire.
Auriez vous une piste pour m'aider?

Merci d'avance.
 
Re : définir utilisateur d'une case à cocher

Bonjour Beubzir
....................... et souhaiterais faire en sorte que certaines personnes puissent utiliser des cases à cocher
Pour cela il est nécessaire de faire apparaitre les cases à cocher en fonction de l'utilisateur ce qui implique que l'utilisateur doit s'identifier dès le départ

à+
Philippe
 
Re : définir utilisateur d'une case à cocher

Bonjour,
Avec une macro déclenchée à l'ouverture, tu peux identifier l'utilisateur avec Environ("UserName") puis avec un test autoriser les cases à cocher et les condamner à nouveau à la fermeture.
Pour éviter un accès si les macros ne sont pas activées, les cases doivent être condamnées à défaut.
A+

ajouté les guillemets
 
Dernière édition:
Re : définir utilisateur d'une case à cocher

Merci pour ces pistes, mais je suis encore novice dans l'utilisation poussée d'Excel.
J'ai peur de ne pas trop savoir par où commencer.
A quel moment je dois dire qui peut utiliser les cases dans la réalisation du formulaire ?
 
Re : définir utilisateur d'une case à cocher

Re,

L'activation se fera dans une macro " Sub Workbook_Open() " placée dans le module ThisWorkbook

La désactivation se fera dans une macro " Sub Workbook_BeforeClose " placée dans le module ThisWorkbook

Tu pourras utiliser les propriétés Enable et visible du contrôle CheckBox
Pour les propriétés du contrôle CheckBox, c'est ici :
Ce lien n'existe plus

A+
 
Re : définir utilisateur d'une case à cocher

Re,
Merci pour ces pistes, mais je suis encore novice dans l'utilisation poussée d'Excel.
J'ai peur de ne pas trop savoir par où commencer.
A quel moment je dois dire qui peut utiliser les cases dans la réalisation du formulaire ?
si tu commençais d'abord par joindre ton fichier avec des explications un peu plus précises ça nous faciliterais la tâche

à+
Philippe
 
Re : définir utilisateur d'une case à cocher

Bonjour,
J'ai un problème qui m'empêche de joindre un fichier, je vais quand même essayer d'expliquer.

Tu as pris des cases à cocher de formulaire, c'est donc normal de ne pas pouvoir les verrouiller, c'est fait pour ça.

Il faut utiliser les cases à cocher VBA. Pour les obtenir, affiche les barres d'outils "Visual basic" et "Boites à outils Contrôles" (celles de la feuille, pas celle de la fenêtre VBA).

Avec la première tu te mets en "Mode Création", Avec la seconde tu cliques sur "Case à Cocher" et tu délimites sur la feuille l'emplacement où la case à cocher va se coller.
Crée en deux dans Feuil1 : CheckBox1 et CheckBox2 puis désactive le mode création.

Ci-dessous à coller dans ThisWorkBook :
VB:
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim i As Integer
    'Désactivation des CheckBox
    For i = 1 To 2
        Feuil1.OLEObjects("Checkbox" & i).Enabled = False
    Next i
End Sub

Private Sub Workbook_Open()
    Dim Toto As String, Autorise As String, AA As Range
    
    'Récupère le nom de l'utilisateur
    Toto = Environ("username")
    'Recherhe dans la plage des personnes autorisées
    Set AA = Feuil2.Range("A2:B10").Find(Toto, LookIn:=xlValues)
    If Not AA Is Nothing Then Autorise = Feuil2.Cells(1, AA.Column)
    
    If Autorise = "BET" Then
        MsgBox "Autorisation BET"
        'activation des checkbox concernées
        Feuil1.OLEObjects("Checkbox1").Enabled = True
    End If
    
    If Autorise = "ADV" Then
        MsgBox "Autorisation ADV"
    End If
    
    If Autorise = "" Then
        MsgBox "Pas d'autorisation"
    End If
    
End Sub
Feuil2 : tu écris BET en A1, ADV en B2
Les identifiants des personnes autorisées seront mis en A2:A10 et B2:B10

Pour obtenir la syntaxe des identifiants, place-toi dans thisWorkbook / Private Sub Workbook_Open()
Fais défiler pas à pas avec la touche F8,
En mettant le curseur sur Toto, tu auras ton identifiant
Mets ton identifiant dans une des plages.

Ferme et réouvre le fichier, tu n'auras accès qu'à l'une des deux CheckBox.

Dis moi si tu y arrives ou s'il te faut d'autres explications
A+
 
Re : définir utilisateur d'une case à cocher

Bonjour Hippolite et merci pour ces explications.

juste une ou deux choses en complément.
j'ai fini par comprendre comment faire pour reproduire ce que tu as fait (j'ai perdu 5 litres de sueur)...

Par contre, dans ton exemple, j'ai beau inscrire mon identifiant suivant la bonne casse dans la colonne ADV, je n'ai pas accés à la case à cocher ADV... Y a t il un bug sur la formule ou est ce que je dois faire une autre manipulation ?

Et pour comprendre : à quoi fait référence "Toto" ?

Merci encore de ton aide.
 
Re : définir utilisateur d'une case à cocher

Bonsoir,
Toto est la variable qui récupère l'identifiant vu par l'ordinateur Environ("username"), ce n'est pas ton login.
As-tu compris les explications données sur la feuille paramètres pour connaître ton identifiant ?
tu ouvres la feuille macro thisWorkbook,
tu mets ton curseur dans Private Sub Workbook_Open,
tu cliques plusieurs fois sur F8, avec le curseur sur Toto jusqu'à ce que ton identifiant apparaisse (ou bien tu utilises un espion sur Toto)
A+
 
Re : définir utilisateur d'une case à cocher

Bonjour,
j'ai compris la manip pour connaitre l'identifiant.
Je vais faire des essais avec les colègues et je te dirais si ça fonctionne.
Comme je fais plusieurs choses en même temps, le retour risque de prendre un peut de temps.
Merci encore pour tes explications.
A++
 
Re : définir utilisateur d'une case à cocher

Encore une question.
Je viens de mettre en pratique ce que tu m'as dit de faire.
Je me suis rendu compte qu'il manque l'activation des chekbox pour ADV. J'ai donc ajouté le texte en copiant la phrase dans BET et en modifiant le numéro de la case à cocher.
Par contre, je ne sais pas comment activer plusieur chekbox pour BET et de même pour ADV ?
J'ai essayé de copier la phrase : Feuil1.OLEObjects("Checkbox1").Enabled = True , en modifiant toujours le numéro de case, en dessous de la première phrase, mais ça ne fonctionne pas...
Merci.
 
Re : définir utilisateur d'une case à cocher

Re,
Attention à ne pas confondre Name (le nom de la CheckBox qui sert à l'appeler dans les macros) et Caption (affichage visuel)
Tu dois renommer les propriétés "Name".
CI-joint un exemple avec 6 CheckBox : 11, 12, 13 pour BEET et 21, 22, 23 pour ADV
VB:
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim i As Integer
    'Désactivation des checkbox
    For i = 1 To 3
        Feuil1.OLEObjects("Checkbox1" & i).Enabled = False
        Feuil1.OLEObjects("Checkbox2" & i).Enabled = False
    Next i
End Sub

Private Sub Workbook_Open()
    Dim Toto As String, Autorise As String, AA As Range, i As Integer
    
    'Récupère le nom de l'utilisateur
    Toto = Environ("username")
    'Recherhe dans la plage des personnes autorisées
    Set AA = Feuil2.Range("A2:B10").Find(Toto, LookIn:=xlValues)
    If Not AA Is Nothing Then Autorise = Feuil2.Cells(1, AA.Column)
    
    If Autorise = Feuil2.Range("A1") Then
        MsgBox "Autorisation BET"
        'activation des checkbox concernées
        For i = 1 To 3
        Feuil1.OLEObjects("Checkbox1" & i).Enabled = True
        Next i
    End If
    
    If Autorise = Feuil2.Range("B1") Then
        MsgBox "Autorisation ADV"
        'activation des checkbox concernées
        For i = 1 To 3
        Feuil1.OLEObjects("Checkbox2" & i).Enabled = True
        Next i
    End If
    
    If Autorise = "" Then
        MsgBox "Pas d'autorisation"
    End If
    
End Sub
Je pense que tu auras vu que les choix BET et ADV sont exclusifs du fait que la recherche s'arrête à la première occurence rencontrée. Si tu veux pouvoir accéder aux deux simultanément, il faut réécrire la logique des tests.
A+
 
Re : définir utilisateur d'une case à cocher

bonjour,
je pense avoir compris la manip pour mettre plus ou moins de chekbox.
Pour ce qui est d'utiliser les deux, étant "administrateur" de ce fichier, je pourais toujours écrire mon nom soit dans un service soit dans l'autre, fermer et ré ouvrir le fichier.
Je fais un essai avec les chekbox en plus et te dis si ça fonctionne.
En tout cas, merci de ton coup de main et du temps passer à m'aider...
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
411
Réponses
15
Affichages
470
Réponses
18
Affichages
1 K
P
Réponses
4
Affichages
908
Polo94100
P
Retour