Microsoft 365 VBA données ne remontent pas correctement dans Labels

Piment

XLDnaute Occasionnel
Bonjour à tous,
Une fois de plus, je reviens vers vous afin de m'aider à résoudre un problème de données qui ne remontent pas correctement dans mes Labels.
Je rappelle que je suis novice en VBA, aussi je vous demande toute votre indulgence.
Je bricole, je bricole...
Mon problème: dans mon USF "Visualiser Agent" j'ai mis en place 3 Frames afin de regrouper mes données: Frame Mobilier, Frame Informatique, Frame Téléphonie.
Les données sont issues du tableau se trouvant sur la feuille "Recensement".
Cet USF "Visualiser Agent" permet de visualiser tout le matériel affecté à un agent. Un autre USF("Visualiser Direction") permet lui de regrouper le matériel par direction, par Service et par Cellule, sur le même principe.
Mon problème est que lorsqu'une colonne du tableau sur la feuille "Recensement" n'est pas renseignée, il m'affiche le Label quantité et Désignation vide, ce qui est tout à fait logique. Mais ce que j'ai fait est que lorsque c'est le cas, le Label vide est rempli par les valeurs du Label qui suit, et les autres Label suivent le même mouvement. Ainsi, je n'ai pas de "trous" dans la raquette, et offrent un meilleur confort de lecture: Bureau="", Fauteuil remonte dans le Label Bureau qui est vide, Chaises remonte alors dans le Label Fauteuil....
Tout fonctionne correctement, sauf à partir de PC Fixe où là cette remontée ne se fait pas. Pareil pour Téléphonie.
Je pense que c'est lié aux Frames, mais en faîte je n'en sais rien.
Pardon pour les puristes, c'est une usine à gaz que j'ai construit, j'en ai bien conscience, mais je n'ai pas les compétences pour faire mieux.
Aussi n'hésitez pas à me faire des propositions pour simplifier tout çà. J'apprendrais encore.
Merci beaucoup pour votre aide.
 

Pièces jointes

  • Recensement Matériel V15 - Copie.xlsm
    180.4 KB · Affichages: 21
Solution
Re

ton problème vient du fait que tu as affecté Un Label (voir nom des labels) par Colonne ! Donc si la cellule de la Colonne est Vide et bien ton label sera Vide.
C'est pourquoi, je crois, que j'avais affecté les Cellules au Label (vide suivant) dans mon exemple ;
Labels Numéroté de 1 à x je crois)
Si tu as 5 cellules Pleines sur l'ensemble seuls les 5 premiers labels seront remplis.
Enfin je crois avoir fait ainsi !
voir vidéo :
Bonne continuation
Jean marie

Piment

XLDnaute Occasionnel
Re:
Cet USF fonctionne exactement comme l'USF "Visualiser_Direction": après le ou les choix dans les comboBox, doivent remonter les Qté, les désignations...
Il permet de visualiser les équipements collectifs liés à la Direction, ou Services ou cellules.
L'utilisateur fait le choix, via les comboBox, de voir ce dont est dotée la Direction...
L'autre USF "Visualiser_Direction" permet de voir les équipements affectés aux agents dans une Direction ou Service, ou Cellule.
Cet USF fonctionne comme l'autre, mais les équipements ne sont pas "attachés" à un agent.
D'où un nouveau tableau pour référencer ces équipements collectifs.
C'est pourquoi j'ai essayé d'adapter ton code pour l'USF "Visualiser_Direction", mais sans succès.
Merci à toi
 

Piment

XLDnaute Occasionnel
Pour que tu puisse comprendre:
Un matériel n'est pas obligatoirement affecté à un agent, il peut être affecté à une Direction, ou à un Service, ou une cellule: il est commun aux agents de cette Direction, ou Service ou Cellule: c'est un matériel collectif: il sert à tout les agents de cette Direction, exemple: la Direction est dotée d'un photocopieur couleur: ce photocopieur est à la disposition de tous ceux qui sont affectés dans cette Direction.
Je te remets ci-joint le nouveau fichier, et tu verras que l'architecture de cet USF est Identique à celui de l'USF "Visualiser_Direction".
Cet USF "Visualiser_MatCollectif" prend ses données dans le tableau "RecensementMatCollectif".
Bonne réception à toi.
 

ChTi160

XLDnaute Barbatruc
Re
J'avais compris tout ce que tu m'expliques sur la logique.
Mais c'est sur ce qui doit être remonté et comment.
Mais comme je le disait s'il n'y a qu'un élément collectif par type et référence .je devrais y arriver lol
jean marie
 

Piment

XLDnaute Occasionnel
Re:
Ce qui doit remonter c'es le total de mobilier affecté dans la Direction, dans le Service ou la cellule.
Le total Informatique affecté ......
le Total Téléphonie.......
C'est comme l'USF "Visuel_Direction". Tu retrouve les mêmes "Champs", sauf le "Champ Agent".
 

Piment

XLDnaute Occasionnel
Re
Autre lien !
Le fichier :
Jean marie
Bonjour Jean-Marie,
Merci à toi pour ton aide.
J'ai balayé les deux fichiers en arrivant ce matin, et je vais m'y plonger pour appréhender tes codes.
Les modifications, si j'ai bien compris, que tu as apportées à l'USF "Visualiser_Direction" concernent les 3 comboBox. C'est ça ?
Le problème c'est que si je click sur "Tous" dans la ComboBox Cellule, il me remet tous les ComboBox à "Tous".
Or il devrait me mettre que la ComboBox Cellule à tous. Il doit me redonne la main sur toutes les cellules du service sélectionné.
Ce que j'aimerais avoir, c'est que: si je choisis Direction des services Techniques, je choisis" dans Service "Patrimoine Bati", si je re-click sur la ComboBox "Service", je puisse faire le choix d'un autre Service, sans avoir besoin de choisir "Tous", puis de nouveau l'un des services affichés.
Là il me remet tout à zéro, la ComboBox "Direction" y compris . Je multiplie les manipulations, ce qui n'est pas très pratique. Idem pour l'USF "Visualiser_MatCollectif.
Concernant cet USF, je vais me plonger dans tes codes pour comprendre comment tu as procédé.
J'ai essayé d'utiliser tes codes de l'USF "Visualiser_Direction" pour y arriver, mais je n'ai pas réussi.
Si je comprends bien du réutilises les Codes De l'USF "Visualier_Direction" déclarés "Public". pour les deux USF ?
C'est ce que j'avais tenté de faire mais sans y arriver.
Je vais donc me pencher dessus pour voir où je me suis planté!
Merci à toi pour ton aide.
Je te souhaite une bonne journée.
 

ChTi160

XLDnaute Barbatruc
Bonjour Piment
J'ai compris que le fonctionnement des combobox en cascades ne convient pas !
Il faudrait que je trouve le moyen de tout individualiser. Je ne sais pas encore faire Lol ca n'a rien à voir avec ce que j'ai fait !
Mais je vais chercher , ça sûrement était fait par quelqu'un reste à trouver qui lol .
pour ce qui est des procédures.j'ai modifié les existantes pour Pouvoir les utiliser dans plusieurs userform plutôt que d'en créer plusieurs.
Il faut aussi savoir que les variables (publiques) peuvent être utilisées dans plusieurs userform d'un même fichier , sans en créer de nouvelles.idem pour les contrôles ils peuvent avoir le même nom si c'est dans deux containers ( userform) différents .

Bon test
Bonne journée
Jean marie
 

Piment

XLDnaute Occasionnel
Re:
Ok je regarde ça de plus près.
Pour revenir aux ComboBox, si tu regardes ce qui se passe sur les ComboBox "Direction, Services, Cellules" de l'USF "Recensement_Matériel, tu verras le fonctionnement que je souhaite avoir. Sauf erreur de ma part, il me semble qu'il s'agit bien de ComboBox en cascades. Là, j'ai toute la fluidité souhaité.
Claude.
 

ChTi160

XLDnaute Barbatruc
Re
je viens de regarder le Fichier Lol
Rien à voir avec ce que j'ai fait effectivement , pour ce qui est de la gestion des Combobox!
(En cascade je ne sais pas !)
Tu utilises des Listes de la Feuille " Paramètres " via la propriété "RowSource" de tes Userform ,moi les feuilles Bases de Données !
Tu as réussi à faire les Userform "Recensement_Matériel" et "Recensement_Matériel_Collectif" !
Moi je n'arriverai pas à adapter de cette façon Lol !
Exemple : si tu veux choisir un Service ou une Cellule en premier choix, que ce passe t-il ? Il te faut absolument commencer par le Choix d'une Direction , si j'ai bien Compris Lol
autre exemple , si tu choisis une Direction puis un Service puis Une Cellule ,tu changes de Service , que ce passe-t-il ? etc etc
Je vais continuer à chercher comment faire autrement pour répondre à ta Demande !
Ne t'embête pas avec ce que j'ai fait, si trop contraignant !
Je continue de chercher Lol
Bonne fin de Journée à toi
Jean marie
 

Piment

XLDnaute Occasionnel
Re:
Effectivement j'utilise les Listes de la Feuille "Paramètres" pour récupérer les données sur cet USF. Cela m'évite d'avoir à tout rentrer manuellement.
Mais le principe devrait être le même, non?
Pour répondre à ta 2ème question:
Je dois obligatoirement choisir une" Direction" avant de pouvoir choisir un "Service", et ensuite choisir une cellule.
En effet, les "Services" sont dans une "Direction" et les "Cellules" sont dans l'un des "Services" de cette "Direction".
Je ne dois et ne peux pas choisir une "Cellule" si je n'ai pas choisi d'abord une "Direction" puis un service.
D'où les comboBox en cascades.
Une "Direction" contient un certain nombre de "Services" qui contiennent de facto un certain nombre de "Cellules".
Si je choisis une "Direction" puis un "Service" puis une "Cellule" et que je change le choix du "Service", Je ne pourrais choisir que dans la liste des "Services" qu'il me proposera ("Service" lié à la ComboBox "Direction" et non pas un autre "Service" lié à une autre "Direction".
Si je choisis une "Direction" puis un "Service" puis une "Cellule" et que je change le choix de la "Cellule", Je ne pourrais choisir que dans la liste des "Cellules" qu'il me proposera ("Cellule" liée à la ComboBox "Service", lié à la "Direction" et non pas une autre "Cellule" liée à un autre "Service", elle-même liée à une autre "Direction".
C'est pour ça qu'il faut des ComboBox en cascades.
En gros: une "Direction" contient un certain nombre de "Services" qui contient de facto un certain nombre de "Cellules".
L'architecture des ComboBox est la même que pour l'USF " Visualiser_Agent". Sauf qu'au lieu de se faire sur le nom de l'agent, la recherche se fait sur la "Direction" qui propose les "Services" liés à la "Direction" choisie et les "Cellules" liées au "Service" choisi dans un deuxième Temps.
Je pense qu'on est bien sur des ComboBox en cascades.
Ce que tu as fait correspond bien à ce qui est recherché, sauf que, pour avoir plus de fluidité dans les manipulations, il faudrait tout simplement qu'après un choix fait par exemple dans la ComboBox "Direction", si je choisis une autre "Direction" la ComboBox me propose tout de suite la Liste des "Directions", sans que je doive activer "Tous" pour avoir de nouveau la liste de disponible pour effectuer un autre choix.
Je viens de me rendre compte que le bouton "Initialiser" ne fonctionne pas sur l'USF "Visuel_MatCollectif", ainsi que "Tous" dans les ComboBox.
Je mesure bien le travail que cela te demande, et je ne t'en remercierai jamais assez.
Bonne après-midi à toi.
 

Discussions similaires

Statistiques des forums

Discussions
312 023
Messages
2 084 716
Membres
102 636
dernier inscrit
TOTO33000