Microsoft 365 Listbox a partir d'un tableau structuré

momo

XLDnaute Occasionnel
Bonjour à tous

Je viens demander votre aide sur un sujet sur lequel je bloque.

Pierre (@p56 ) m'a conçu un fichier très élaboré voir (). Mais je voudrai y apporter des ajouts que je n'arrive pas à faire. Il s'agit d'un fichier de planification qui se remplit en créant des projets et en affectant des ressources sur ces projets selon des plage de temps.
Ce que je voudrais ajouter c'est de:
- Pouvoir partir d'une base de projets prédéfini, choisir dans la liste un projet et l'ajouter le planning
- Pouvoir supprimer ou masquer une personne ne faisant plus partie du groupe sans supprimer ses affectations antérieurs
- Pouvoir faire des recherches et des filtres dans l'afichage de nom

Je joins le fichier que @p56 m'a élaboré sans les macros (Il m'a été reproché déjà de l'avoir upload avec les macros) pour que possiblement vous m'aidiez sur la mise à jour du projet

Merci par avance
 

Pièces jointes

  • Planning_multi_Taches_5.xlsx
    45.2 KB · Affichages: 6

p56

XLDnaute Occasionnel
Bonjour

Version du jour :

- Pouvoir supprimer ou masquer une personne ne faisant plus partie du groupe sans supprimer ses affectations antérieures
=> une info ou un caractère quelconque dans la colonne "Absent" inhibe l'affichage de la personne dans le planning et dans les listes (sans suppression des données antérieures)
Démo_2.gif


- Pouvoir faire des recherches et des filtres dans l'affichage de nom
=> 2 cases pour filtrer selon nom et/ou grade
Démo_1.gif


- Pouvoir partir d'une base de projets prédéfini, choisir dans la liste un projet et l'ajouter le planning
=> ici il est nécessaire de me donner plus d'explications sur le fonctionnement recherché. Je n'ai pas compris l'exemple donné plus haut

P.
 
Dernière édition:

momo

XLDnaute Occasionnel
Pouvoir partir d'une base de projets prédéfini, choisir dans la liste un projet et l'ajouter le planning
=> ici il est nécessaire de me donner plus d'explications sur le fonctionnement recherché. Je n'ai pas compris l'exemple donné plus haut
Bonjour Pierre

Merci pour votre retour. c'est toujours un plaisir.

Pour cette requête , il s'agirait d'une base de "projet" déjà connu a l'avance avec des dates prévisionnelles et des personnes probables à affecter. Ces projet pourraient être déjà renseignés dans le tableau "T_Prjt"

L'idée sera à partir d'une liste déroulante, pouvoir sélectionner le projet et le valider pour qu'il s'affiche sur le planning comme si on était passé par l'option "Saisie", qui elle sera maintenue. (Comme ca pour ces projets spécifiques, on ne sera plus obligé de passer par le bouton "Saisie' pour renseigner les informations. Il suffira de cliquer dans la liste préexistante.) Bien entendu ca ne changer pas ce qui se fait déjà maintenait La saisie de tout nouveaux projet s'inscrira aussi directement dans cette base "T_Prjt"

Et dans la base "T_Prjt" on pourra créer un colonne Ancienne dates et nouvelles dates pour les éventuelles modifications dans les planifications déjà validées. Ceci sera pour faire un comparatif entre la date prévue et la date réelle bien entendu Ce sera la dernière date retenue qui va rester. Pas besoin d'avoir toutes les modifications effectuées entre temps.

Merci vraiment
Momo
 

momo

XLDnaute Occasionnel
J'ai oublié un paramètre
- J'ai remarqué que les projets qui chevauchent sur deux mois créent des bugs lorsqu'ils sont nombreux, est-ce ie que le fichier tourne en boucle infini lorsqu'on choisit le mois sur lequel les projets chevauchent. et il faut fermer le fichier
- Est ce possible de mettre un message d'erreur qui bloque la validation d'un projet lorsque par exemple, l'on fait une erreur dans les dates. Par ex date de fin de projet antérieure à date de début ou date de début d'une ressource affecté antérieure à date du projet.

A l'état actuel la macro beugue et il faut redémarrer, après on perd toutes les données entrées

Merci par avance
 

p56

XLDnaute Occasionnel
Bonjour,

Déjà pour fiabiliser l'existant :

- fichier tourne en boucle ... erreur dates ... bug ... perte de données
=> tous ces symptômes surviennent quand "datedebut > datefin". Plusieurs façons de remedier au problème :

* méthode "lourde" = vérification systématique à chaque saisie de date avec éventuel message d'erreur + blocage de validation, ... => beaucoup de lignes de code complexes à ajouter = source de bugs potentiels.

* méthode "simple" (donc celle que je propose ici) = si debut>fin => interversion des 2 dates avec coloration de l'histogramme en noir, ce qui met en évidence un souci de saisie => 3 lignes de code. Fénéant, oui et je l'assume bien, mais plus de bug.
Démo_dates_inversées.gif

nb : quand c'est possible, la saisie passant par la sélection de plusieurs colonnes sur une ligne garantit la validité des dates (=> debut < fin)


Sinon pour enregistrer des projets prévisionnels à l'avance et ensuite pouvoir les confirmer et modifier (ou non) le moment venu, voici ma proposition :

* comme il y aura une saisie d'infos, autant utiliser l'existant. Donc dans la fenêtre de saisie, une nouvelle case à cocher pour indiquer que la saisie est prévisionnelle et n'est pas à afficher sur le planning. Saisie des infos habituelles avec éventuel(s) participant(s). Cette fiche prévisionnelle est complétée par un "P" dans T_Prjt en colonne "Prev". Ultérieurement il suffira de décocher la case pour rendre le projet effectif.
Démo_Prev.jpg

* + liste affichable pour choix d'un prévisionnel avec filtres
Démo_Pprev.gif

Avec mes quelques tests, ça semble fonctionner, mais on est jamais à l'abri de défauts.
P.
 
Dernière édition:

momo

XLDnaute Occasionnel
Bonjour Pierre
- fichier tourne en boucle ... erreur dates ... bug ... perte de données
=> tous ces symptômes surviennent quand "datedebut > datefin". Plusieurs façons de remedier au problème :
Effectivement. C'est bien le cas.

méthode "simple" (donc celle que je propose ici) = si debut>fin => interversion des 2 dates avec coloration de l'histogramme en noir, ce qui met en évidence un souci de saisie => 3 lignes de code. Fénéant, oui et je l'assume bien, mais plus de bug.
Ah je ne me permettrais pas de penser que c'est de la fainéantise 😅. La solution proposée me va très largement.

* comme il y aura une saisie d'infos, autant utiliser l'existant. Donc dans la fenêtre de saisie, une nouvelle case à cocher pour indiquer que la saisie est prévisionnelle et n'est pas à afficher sur le planning. Saisie des infos habituelles avec éventuel(s) participant(s). Cette fiche prévisionnelle est complétée par un "P" dans T_Prjt en colonne "Prev". Ultérieurement il suffira de décocher la case pour rendre le projet effectif.
Je l'ai essayé également et c'est juste parfait!!

Mais c'est vrai que si on a au préalable une liste de 100 projets à planifier, ca devient vite épuisant de devoir en amont les saisir une à une . C'est ca la contrainte aussi

Avec mes quelques tests, ça semble fonctionner, mais on est jamais à l'abri de défauts.
Hahaha. C'est pas faux. je vais croiser les doigts pour qu'il y en ait pas
 
Dernière édition:

momo

XLDnaute Occasionnel
Bonjour P.

Je reviens après utilisation du fichier, quand on clique sur la flèche du prévisionnel un bug s'affiche lorsque aucun prévisionnel n'est renseigné.
Mais si il y en a pas de soucis. Io y a t il un moyen d'y remédier?

le bug apparait sur cette ligne

ReDim Preserve T(1 To UBound(Ttk, 2), 1 To idx - 1)
 
Dernière édition:

p56

XLDnaute Occasionnel
Bonjour,

En effet, les 1er défauts.
Dans le module "Dispo" le code de la funtion Tp_Prev est à finir comme ceci :
VB:
' blabla ...
    Next i
    If idx = 1 Then
        ReDim T(1 To UBound(Ttk, 2), 1 To 1)
    Else
        ReDim Preserve T(1 To UBound(Ttk, 2), 1 To idx - 1)
    End If
    Tp_Prev = Transpose(T)
End Function
Ensuite, dans le code de l'Usf, la Private Sub ListBox4_Click() est à compléter avec une ligne au début :
Code:
Private Sub ListBox4_Click()
Dim Ttprv As TdLg

    If Me.ListBox4.List(Me.ListBox4.ListIndex, 0) = "" Then Exit Sub
    ' etc ...

P.
 

p56

XLDnaute Occasionnel
Bonsoir le Fil
Histoire de Saluer "@Pierre"
On aurait-on pu mettre :
VB:
If Me.ListBox4.ListCount = 0 Then Exit Sub
Bonne continuation
Jean marie
Bonsoir ChTi160, 👍

L'idée est bonne Jean Marie, mais en fait ce n'est pas adapté dans ce cas, car en réalité la liste n'est jamais tout à fait vide. Il y a toujours au moins une ligne, mais dont les data sont potentiellement vide (j'ai fait comme ça pour m'éviter des lignes de code moches, même si celle-ci n'est pas très glamour).

Bonne soirée!
P.
 

momo

XLDnaute Occasionnel
En effet, les 1er défauts.
Bonjour P.
La solution a parfaitement fonctionné. c'est top!

Par contre j'ai pris le temps de regarder d'autres paramètres avant de fermer le fil. Donc si je eux me permettre,

2e couac: c'est par rapport aux filtres lors du choix des équipes.
- j'ai remarqué que sur certaines un nom commençant par "KO" lorsqu'on filtre pour sélectionner, ca désélectionne d'autres membres préalablement sélectionnés.
- Le filtre sur la lettre I ne fait pas apparaitre les noms commençant par cette lettre

3e Bug: il se situe au niveau de l'erreur lors du choix des dates de début et fin du projet: Lorsque par inadvertance, le choix de la date de fin est postérieure à celle de début, un bug apparait lorsqu'on s'en va choisir les équipes

Autres constat: La macro laisse passer une date de début d'une personne antérieure à la date de début du projet et pareil sur la fin.
 

p56

XLDnaute Occasionnel
Bonjour,
En effet quelques réglages à faire (ici avec de la complexité). Attention à la liste des noms en Bdd, les noms ne doivent pas avoir d'espace avant la première lettre, avec ça par exemple le nom "Ines" est correctement reconnu.
Version du jour à tester
P.
 

Pièces jointes

  • Planning_multi_Taches_06dec23.zip
    149.3 KB · Affichages: 6

momo

XLDnaute Occasionnel
Si ça ne fonctionne toujours pas, je laisse tomber
Oh non. La correction faite à ce niveau à marché.
Je vais joindre des captures pour expliquer
La capture 1 montre La date d'un équipier antérieure à la date de début

Et les Captures suivantes (2, 3 et 4 ) montrent que lorsqu'on sélection un équipier à partir d'un filtre, la sélection fait disparaitre un précédent qui avait été déja selectionné.

Je ne voudrais pas vous ennuyer alors que vous m'avez déja tant aidé. c'est pas bloquant je pourrais faire avec.

PS: excusez les captures , je ne sais pas faire les démo GIF comme vous le faites pour illustrer
 

Pièces jointes

  • Capture 1.PNG
    Capture 1.PNG
    107.9 KB · Affichages: 5
  • Capture 2.GIF
    Capture 2.GIF
    115.5 KB · Affichages: 5
  • Capture 3.GIF
    Capture 3.GIF
    112.8 KB · Affichages: 5
  • Capture 4.GIF
    Capture 4.GIF
    126.8 KB · Affichages: 5

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 270
Membres
103 168
dernier inscrit
isidore33