Bonjour,
j'ai créé un UserForm classique sauf que je rajoute "dynamiquement" (par une macro) des contrôles supplémentaires plus ou moins nombreux.
à chacun de ces contrôles je donne un nom commençant soit par "DS_CB_Local_" soit par "DS_CB_Clef_" suivi d'un indice donc le premier se nomme "DS_CB_Local_1"
ma règle de nommage est :
  • "DS" signifie demande Simple
  • "CB" signifie CheckBox (donc le contrôle est une case à coché)
  • Dénomination (soit "Local" soit "Clef")
  • N° d'indice par Dénomination

Par défaut ma macro fait une boucle sur un nombre de salle (déterminé par ailleurs) donc à chaque tour de boucle elle crée un contrôle de type "Local"
mais si cette salle est équipée d'une serrure la macro crée en plus un contrôle de type "clef" etc
Le UserForm me permet de saisir si une personne a accès à telle ou telle salle et si en plus elle possède une clef dans le cas où il y a une clef affectée à la salle
Mon problème est le suivant : je veux retrouver (pour une personne quelles sont les salle qui lui sont accessible et si elle possède une clef de cette salle
J'ai donc créé une boucle basée sur le nom des contrle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 IndicePDF = 0
        For i = 1 To Nb_Salle
            If demande_Simple.Controls("DS_CB_Local_" & i).Value = True Then 'ok la salle est cliquée
                IndicePDF = IndicePDF + 1
                ReDim Preserve pdf(IndicePDF)
                'maintenant reste à savoir si la clef de cette salle est cliquée
                'donc faut d'abord savoir s'il y a une clef effectée à la salle cliquée, sachat que par défaut si une clef est affactée à une case
                'automatiquement le controle qui suit le contrôle de la salle aura un nom qui commence par "DS_CB_Clef_" et non parDS_CB_Local_  
            End If
        Next i
donc ce que je cherche est après l'instruction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 If demande_Simple.Controls("DS_CB_Local_" & i).Value = True
existe t _il une instruction du style Index = demande_Simple.Controls("DS_CB_Local_" & i).Index (Un peu comme retrouver le numéro d'index d'un onglet Excel quand on connait son nom.
J'ai trouvé la notion de TablIndex mais ça ne correspond pas
Merci pour votre aide