Microsoft 365 Après un choix dans un ComboBox, charger les données dans des Labels

Piment

XLDnaute Occasionnel
Bonjour à tous.
Bonne année 2022 à tous, avec une pensée particulière pour Chti160, PatrickToulon, Job 75, BrunoM45 qui m'ont beaucoup aidé sur des projet précédents.
Je me tourne de nouveau vers vous pour m'aider à résoudre un problème: j'essaye de récupérer des données dans des labels après un choix fait dans un ComboBox. Je voudrais obtenir le même résultat que si j'utilisais une ListBox. Pourquoi faire compliqué quand on peut faire simple: tout simplement par ce qu'il y aura une meilleure lisibilité du résultat car mon USF (Visualiser Agent) est organisé en fonction de groupe de matériel (Mobilier, Informatique, téléphonie...). Je n'arrive pas à mettre en relation mes Labels par rapport aux lignes concernées.
J'ai beaucoup appris grâce à vous mais je suis encore loin d'être autonome.
Je joins mon fichier.
Par avance merci à ceux qui voudront bien m'apporter l'aide dont j'ai besoin.
 

Pièces jointes

  • Recensement Matériel V1.xlsm
    87.3 KB · Affichages: 25

Piment

XLDnaute Occasionnel
C'est çà. Dans une Direction il y a un ou plusieurs services, dans un service il y a une plusieurs cellules.
On choisi une Direction, la Frame "Direction": "Mobilier" remonte tous les éléments de la direction, idem pour "Informatique" et "Téléphonie".
On choisi un service de cette Direction, la Frame: "Mobilier" remonte tous les éléments du Service de cette Direction, idem pour "Informatique" et "Téléphonie".
On choisi une Cellule de ce service, de cette Direction, la Frame: "Mobilier" remonte tous les éléments de la cellule choisi de ce Service de cette Direction, idem pour "Informatique" et "Téléphonie".
Bonne journée à toi.
 

Piment

XLDnaute Occasionnel
petite précision: la Qté qui remonte pour la Direction est la somme de "Mobilier", idem pour les deux autres Frames.
La Qté qui remonte après choix dans la Combo "Service", et la somme de "Mobiliers" du service choisi, idem pour les deux autres Frames. La ComboBox "Service" donne le choix des services de la Direction...
La Qté qui remonte, après choix de la "Cellule" est la somme "Mobiliers" de la Cellule choisie, idem pour les deux autres Frames. La ComboBox "Cellule" donne le choix du service de la Direction...
 

Piment

XLDnaute Occasionnel
Bonjour à tous, ChTi160
Comme je n'ai plus de retour, Jean-Marie je me permets de te sollicite à nouveaux. Je me suis efforcé de comprendre les codes que tu m'avais transmis. Je n'ai pas tout saisi.
Tu es toujours disponible pour m'aider?
Merci de me faire un retour.
 

ChTi160

XLDnaute Barbatruc
Bonjour Piment
j'espère que tu vas bien ,
il faut que je m'y replonge Lol
il faut que je trouve comment nommer les Labels
apparemment il y en a moins par rubrique que dans l'autre Userform !
ex : Direction --> 10 pour Mobilier et 10 pour Informatique
c'est ça ?
je vais voir ce que je peux faire
Jean marie
 

Piment

XLDnaute Occasionnel
Bonjour Jean-Marie,
Merci de ton retour et pour ton aide. Je vais bien merci. Et toi ça va?
Effectivement, la Direction regroupe le total de bureau dans les services, et les services le total des bureaux dans les cellules, et la cellule donne le total de bureau de la cellule du service dans la Direction.
J'ai un souci sur l'USF "Visualiser Agent": lors du choix de l'agent, dans le ComboBox, les Lbl_Directions, Services et Cellules ne récupèrent pas les bonnes données. J'ai tenté de résoudre le problème, mais je n'y suis pas arrivé. J'essaye de lier le StrDirections à la ligne du StrName, mais avec la colonne 8 pour récupérer les bonnes données. Si tu pouvais y jeter un œil.
Merci à toi.
Bonne journée.
 

Piment

XLDnaute Occasionnel
Re Jean-Marie,
Après avoir grillé quelques neurones, j'ai réussi à corriger le beug de l'USF "Visualiser Agent" qui ne récupérait pas les bonnes données (Direction, Service et Cellule liés à l'agent sélectionné). J'ai tout simplement déplacé les .Lbl_Directions.Caption dans la boucle If. Comme ils étaient placés en dehors de la boucle, ils récupéraient les données de la dernière ligne du tableau.
 

ChTi160

XLDnaute Barbatruc
Bonjour Piment

C'est très bien que tu mettes les mains dans le Cambouis
Il fallait effectivement déplacer quelque chose !
Si tu regardes en pas à pas tu verras qu'ainsi, le caption de ceux-ci est remplis à chaque tour de la Boucle !
Ce que j'ai fait c'est que j'ai déplacé les Variables qui récupèrent les Valeurs à mettre dans les Label.
De façon à ne les récupérer qu'une seule fois. Ça c'est ma méthode Lol
VB:
Public Function Recup(StrName$)
Dim Ok As Boolean
With VisuelAgent
        
       If StrName = Empty Then Exit Function 'On quitte si Variable Vide
 Ok = True
    For Lgn = 1 To UBound(Tbl_BDD, 1) 'Pour Chaque ligne du tableau
    
      If Tbl_BDD(Lgn, 7) = StrName Then 'si la Colonne 7 du tableau Contient le Nom
      'ci dessous
   If Ok = True Then StrDirection = Tbl_BDD(Lgn, 8): StrService = Tbl_BDD(Lgn, 9): StrCellule = Tbl_BDD(Lgn, 10): Ok = False ' On récupére les variables une fois
            
      StrCategorie = Tbl_BDD(Lgn, 2) 'La categorie
               Qte = Tbl_BDD(Lgn, 3) 'la Quenatité
        Select Case True ' on vavérifeir ce qui est Vrai
            
               Case StrCategorie Like "*Bureau*" 'La variable Catégorie contint le Mot "Bureau"
                 IndxFrm = 1 'on aura pour cible la Frame 1
                     Idx = IndxFrm * 10 'les labels auraont cette formae de Nom "LBl_10_xx"
             ID_Mobilier = ID_Mobilier + 1 'on increment l'index du Label 01 à 20
                      ID = ID_Mobilier
          With .Controls("Lbl_" & IndxFrm & "_" & Format(ID_Mobilier, "00")) 'avec le Label Ainsi définit
               .Caption = Tbl_BDD(Lgn, 3) 'On y affiche la valeur de la Colonne 3 de la Ligne correspondante
               .Visible = True 'on le rend visible
          End With
          With .Controls("LBl_" & Idx & "_" & Format(ID_Mobilier, "00"))
               .Caption = Tbl_BDD(Lgn, 4)
               .Visible = True
          End With            
               Case StrCategorie Like "Informatique*"
                IndxFrm = 2
                    Idx = IndxFrm * 10 'les labels auraont cette formae de Nom "LBl_20_x"
        ID_Informatique = ID_Informatique + 1
                     ID = ID_Informatique
          With .Controls("Lbl_" & IndxFrm & "_" & Format(ID_Informatique, "00"))
               .Caption = Tbl_BDD(Lgn, 3)
               .Visible = True
          End With
          With .Controls("LBl_" & Idx & "_" & Format(ID_Informatique, "00"))
               .Caption = Tbl_BDD(Lgn, 4)
               .Visible = True
          End With            
               Case StrCategorie Like "*Téléphonie*" 'les labels auraont cette formae de Nom "LBl_30_x"
                IndxFrm = 3
                    Idx = IndxFrm * 10
           ID_Telephone = ID_Telephone + 1
                     ID = ID_Telephone
           With .Controls("Lbl_" & IndxFrm & "_" & Format(ID_Telephone, "00"))
                .Caption = Tbl_BDD(Lgn, 3)
                .Visible = True
           End With
           With .Controls("LBl_" & Idx & "_" & Format(ID_Telephone, "00"))
                .Caption = Tbl_BDD(Lgn, 4)
                .Visible = True
           End With
        End Select
    'With VisuelAgent
      With .Controls("Frm_" & IndxFrm)
           .Height = 20 + (26.4 * ID)
      End With  
      End If
    Next
    'après la Boucle on affiche dans les Labels correspondants les valeurs des Variables récupérées
           .Lbl_Directions.Caption = StrDirection
           .Lbl_Services.Caption = StrService
           .Lbl_Cellule.Caption = StrCellule
End With
End Function
Pas de réponse à mes questions du #50 ? (J'attends donc !)
Bonne continuation
Jean marie
 
Dernière édition:

Piment

XLDnaute Occasionnel
Bonjour Jean-Marie,
Merci de ton retour.
J'adore mettre les mains dans le cambouis, mais souvent, je reste sur ma faim, car je ne comprends pas tout.
A ton questionnement du post 50: effectivement il n'y aurait que 10 labels pour l'immobilier et pour l'informatique, 4 ou 5 pour la téléphonie. En effet, ne remonte que le total des bureaux, des chaises... des Services de la Direction, Service qui remonte le total des éléments des Cellules du Service en question contenu dans la Direction.
Pour te permettre de mieux comprendre ce que je cherche à faire, je te joins mon premier fichier de travail.
Si tu ouvres l'USF Visualiser Direction, dès son ouverture, on a tout le matériel recensé. Puis, tu choisis "Direction des Services Techniques" et tu as tout le matériel affecté à la Direction, puis, tu choisis le Service "Etudes et Conduite d'Opération" et il y aura affiché dans la Frame Service tout le matériel du service choisi, puis tu choisi la Cellule Etudes et Conception et tu auras affiché dans la Frame Cellule le matériel affecté dans cette cellule.
J'ai changé mon fusil d'épaule, car le tableau de base ne me convenait pas pour le traitement des informations (Tableau croisé dynamique, tableau de bord, gestion des mouvements d'affectation...). Et c'est là que les problèmes commencent.
Merci pour ton aide, très bonne journée à toi.
 

Pièces jointes

  • Recensement Matériel 1.xlsm
    145.3 KB · Affichages: 3

ChTi160

XLDnaute Barbatruc
Bonjour Piment
Effectivement ! Rien à voir .....
J'ai changé mon fusil d'épaule, car le tableau de base ne me convenait pas pour le traitement des informations (Tableau croisé dynamique, tableau de bord, gestion des mouvements d'affectation...). Et c'est là que les problèmes commencent.
De plus moi les TCD et autres tris, je n'y connais rien Lol
Je te laisse donc avancer !
J'espère que tu trouveras de l'aide sur XLD , si besoin !
Bonne continuation
Jean marie
 

Piment

XLDnaute Occasionnel
Bonjour Piment
Effectivement ! Rien à voir .....

De plus moi les TCD et autres tris, je n'y connais rien Lol
Je te laisse donc avancer !
J'espère que tu trouveras de l'aide sur XLD , si besoin !
Bonne continuation
Jean marie
Bonjour Jean-Marie,
Les TCD et autres... je m'en charge. Mais pour cela, il me faut un tableau approprié. Celui sur lequel ont travaille est parfait pour ce que je veux faire. La difficulté est de récupérer les données pour l'USF "Visualiser Direction", comme pour l'USF "Visualiser Agent". Après réflexion je me demandais: si on rajoutait une colonne au tableau, colonne dans laquelle on indiquerait le type de matériel: bureau quand il s'agit d'un bureau, ou chaises... La récupération se ferait à partir de cette colonne pour les Directions, Services et Cellules. En faîte, la catégorie est trop "générique" et ne peut pas permettre de faire le distingo entre les différents matériels et de récupérer leurs quantités.
Voilà où j'en suis après le travail que tu m'as fournis.
Si tu vois une solution, je suis preneur.
 

ChTi160

XLDnaute Barbatruc
Bonjour Piment
Tu dis :
"Après réflexion je me demandais: si on rajoutait une colonne au tableau, colonne dans laquelle on indiquerait le type de matériel"
Mets un fichier !

De quel tableau parles tu !
Bonne journée
Jean marie
 

Piment

XLDnaute Occasionnel
Je n'ai pas été très clair dans mes explications, je l'avoue. Je te joins un nouveau fichier qui sera, je l'espère plus parlant.
Tu verras que j'ai rajouté une colonne supplémentaire à la fin du tableau qui se trouve sur la feuille "RecensementMatériel", colonne appelée Type de Matériel.
Dans cette colonne, j'inscris le type de matériel qui a été ajouté.
Du coup si tu effectue un tri "Bureau" sur cette colonne (K) , tu obtiens le nombre de bureau recensé dans le tableau, puis effectue un tri sur la colonne Direction (H), tu choisi "Direction des Services Techniques" et tu obtiens le nombre de "Bureau" de la direction des Services Techniques , puis tu effectues un trie sur la colonne "Services" (I), et tu choisis "Service Intervention et Travaux", tu obtiens le nombre de "Bureau" du service "Service Intervention et Travaux" choisi dans la Direction des Services Techniques" et enfin, tu effectues un tri sur la colonne "Cellule" (J), tu choisis "Cellule Patrimoine Bâti" et tu obtiens le nombre de "Bureau" de cette Cellule.
Sur cette base, je pense que tu pourrais arriver à obtenir ce que je cherche.
 

Pièces jointes

  • Recensement Matériel V9.xlsm
    86.7 KB · Affichages: 1

Discussions similaires

Réponses
16
Affichages
1 K

Statistiques des forums

Discussions
312 215
Messages
2 086 326
Membres
103 179
dernier inscrit
BERSEB50