XL 2019 Remplir tableau planning avec vba

Muhadini

XLDnaute Junior
Bonsoir :) le forum,

Étant débutante à excel, votre aide sera la bienvenu :) !

J'ai un planning et j'ai créer deux formulaires un pour ajouter un horaire au planning ou une absence (à choix), pour remplir mon tableau. Et l'autre formulaire pour ajouter (à la suite avec la même forme des autres) ou supprimer un participant.

De plus, quand je change de semaine, j'aimerai que tout ce garde en changeant de semaine en semaine.... Que je puisse retrouver des absences ou un participant 2 semaines en arrières par exemple.

Merci d'avance pour votre aide...
 

Pièces jointes

  • horaire.xlsm
    102.9 KB · Affichages: 82

Dudu2

XLDnaute Barbatruc
Je pense que tu gagnerais beaucoup de temps avec un bouton de chargement de toutes les valeurs de la semaine précédente si, comme on peut le supposer, il y a une certaine cohérence des heures pour chaque participant d'une semaine à l'autre.
 

Dudu2

XLDnaute Barbatruc
J'ai ajouté le bouton de chargement des horaires de la semaine précédente et corrigé un petit bug sur la colorisation des cellules en affichage de semaine.

Le vendredi après-midi n'est jamais valorisé. Faut-il conserver cette exception ou le valoriser aussi ?

Edit: fichier supprimé, voir plus loin
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
J'ai ajouté le Scroll en ComboBoxes ce qui est quand même plus pratique avec de longues listes.

Je pense que ça marche en Excel 64 bits, mais si quelqu'un peu confirmer ce serait bien.
 

Pièces jointes

  • Horaire.xlsm
    143.7 KB · Affichages: 11
Dernière édition:

Muhadini

XLDnaute Junior
J'ai ajouté le Scroll en ComboBoxes ce qui est quand même plus pratique avec de longues listes.

Je pense que ça marche en Excel 64 bits, mais si quelqu'un peu confirmer ce serait bien.
Re dudu2, c'est magique c'est même plus que parfait !!! Merciii beaucoup, c'est vraiement gentil de ta part :) !

Je te dois un apéro, si tu passe par la Suisse, je ne sais pas ou t'habite mais si t'es pars là, fait signe... Un verre de vin ou de bière est obligatoire :) !!!!
 

Dudu2

XLDnaute Barbatruc
ah ah ! On m'a promis du comté et de la morteau du coté de Besac que j'ai bien connu dans ma jeunesse, je n'aurai donc qu'un petit détour à faire pour la boisson
1616673724555.gif
.
Mes Alpes à moi sont maritimes, mais ce sont les Alpes quand même :)
 

Muhadini

XLDnaute Junior
ah ah ! On m'a promis du comté et de la morteau du coté de Besac que j'ai bien connu dans ma jeunesse, je n'aurai donc qu'un petit détour à faire pour la boisson Regarde la pièce jointe 1099941.
Mes Alpes à moi sont maritimes, mais ce sont les Alpes quand même :)


Bonjour, je reviens vers toi, après plusieurs semaines de travail sur ton projet. Et, j'ai besoin de ton aide....


Il y a juste "quelque petit soucie" :

- j'ai rajouté une colonne remarque après " % contrat ", pour noter des notes pour la semaine en question mais la colonne se copie sur toutes les semaines prochaines et quand j'efface la remarque dans la semaine d'après elle s'efface sur toutes les dernières semaines....
En gros, j'aurais besoin de mettre une remarque pour le participant dans la semaine en cours et non reporté sur les semaines précédente et suivante.

- Si je rajoute une nouvelle ligne pour ajouter un participant, ce dernier des fois marches des fois ne marche pas... Peut être je fais, une mauvaise manipulation...

- Quand on efface un participant, cela efface les anciennes semaines également, se serais bien de garder une trace des heures enregistrés pour un suivi de dossier pour la suite...
 

Dudu2

XLDnaute Barbatruc
Bonjour,
mais la colonne se copie sur toutes les semaines prochaines et quand j'efface la remarque dans la semaine d'après elle s'efface sur toutes les dernières semaines....
Le code que j'ai développé ne s'intéresse qu'aux cellules Horaires des 5 jours de la semaine et à celle du nom. S'il faut un commentaire par semaine, il faut qu'il soit intégré dans la BaseDeDonnées, sinon c'est impossible. Il me faut un exemple de fichier ou de feuille pour voir comment tu as placé ce commentaire.
D'ailleurs si tu pouvais éviter les cellules fusionnées pour HEURE CONTRAT, % CONTRAT et COMMENTAIRE ce serait toujours ça de gagné en simplification.

Si je rajoute une nouvelle ligne pour ajouter un participant, ce dernier des fois marches des fois ne marche pas... Peut être je fais, une mauvaise manipulation...
Qu'est-ce que tu entends par "marcher" ou "pas marcher" ?
Comment fais-tu pour insérer une ligne ?

Quand on efface un participant, cela efface les anciennes semaines également, se serais bien de garder une trace des heures enregistrés pour un suivi de dossier pour la suite..
La solution la plus simple est d'afficher pour la semaine uniquement les participants qui ont des horaires. Ceux qui n'ont pas d'horaires ne sont pas visibles et pour leur introduire des horaires il faut d'abord les créer dans la semaine ou copier la semaine précédente et travailler dessus.

Sinon il faut monter une usine à gaz avec la liste des participants par semaine à conserver dans une feuille type BaseDeDonnées et gérer l'affichage et les modifications.
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
J'ai modifié le fichier pour répondre à tes demandes.

A lire avant utilisation. Il faut noter que:
- Le tableau de la semaine ne varie pas en hauteur et doit pouvoir contenir tous les participants de la semaine la plus chargée en participants. Le code prévoit quand même d'informer du manque de place au cas où il y aurait plus de participants que de lignes disponibles.

- La fin de la liste des participants (et donc la hauteur du tableau) est déterminée par la cellule qui contient le mot "Total".
1620536300114.png
Sans ce mot "Total" le code ne peut pas statuer sur la hauteur du tableau et ne peut donc fonctionner. Il eut mieux valu un tableau structuré mais ta présentation ne le permet pas.

- Seuls les participants ayant été ajoutés pour la semaine sont présents.

- La nouvelle feuille BaseDeDonnées contient le même tableau auquel a été ajouté une colonne "Commentaire" de sorte qu'il est facile de copier le contenu du tableau du fichier actuel dans celui de la nouvelle feuille BaseDeDonnées.

- Dans la feuille Liste, un nouveau tableau a été ajouté pour lister tous les participants susceptibles d'être ajoutés dans les semaines.

- Les boutons <Ajouter participant> et <Supprimer participant> doivent être utilisés pour gérer les participants de la semaine. La modification ou l'ajout manuel de participant sont interdits pour que le code soit sûr du contenu de la semaine et de l'absence de ligne vide dans la liste (par exemple).

- J'ai laissé des données de test pour les 3 premières semaines qu'il faudra supprimer lors du rechargement de la BaseDeDonnées avec les données actuelles.

- Malgré mes tests, un bug est toujours possible, auquel cas il faut me décrire l'erreur et le scénario pour que je puisse reproduire et investiguer.

Fichier modifié 10/05/2021 17h58
 

Pièces jointes

  • Horaire.xlsm
    175.2 KB · Affichages: 10
Dernière édition:

Muhadini

XLDnaute Junior
J'ai modifié le fichier pour répondre à tes demandes.

A lire avant utilisation. Il faut noter que:
- Le tableau de la semaine ne varie pas en hauteur et doit pouvoir contenir tous les participants de la semaine la plus chargée en participants. Le code prévoit quand même d'informer du manque de place au cas où il y aurait plus de participants que de lignes disponibles.

- La fin de la liste des participants (et donc la hauteur du tableau) est déterminée par la cellule qui contient le mot "Total". Regarde la pièce jointe 1105032 Sans ce mot "Total" le code ne peut pas statuer sur la hauteur du tableau et ne peut donc fonctionner. Il eut mieux valu un tableau structuré mais ta présentation ne le permet pas.

- Seuls les participants ayant été ajoutés pour la semaine sont présents.

- La nouvelle feuille BaseDeDonnées contient le même tableau auquel a été ajouté une colonne "Commentaire" de sorte qu'il est facile de copier le contenu du tableau du fichier actuel dans celui de la nouvelle feuille BaseDeDonnées.

- Dans la feuille Liste, un nouveau tableau a été ajouté pour lister tous les participants susceptibles d'être ajoutés dans les semaines.

- Les boutons <Ajouter participant> et <Supprimer participant> doivent être utilisés pour gérer les participants de la semaine. La modification ou l'ajout manuel de participant sont interdits pour que le code soit sûr du contenu de la semaine et de l'absence de ligne vide dans la liste (par exemple).

- J'ai laissé des données de test pour les 3 premières semaines qu'il faudra supprimer lors du rechargement de la BaseDeDonnées avec les données actuelles.

- Malgré mes tests, un bug est toujours possible, auquel cas il faut me décrire l'erreur et le scénario pour que je puisse reproduire et investiguer.
Bonjour dudu2, merci pour ton travail :) !

J'ai réussi à testé le changement, tout fonctionne correctement, sauf un beug avec les annotations quand la personne est malade, donc "M" sur le jour en question devrait normalement paraître en rouge (exemple) la couleur se reporte sur toutes les semaines d'après même si on a copié plusieurs semaines en avance juste avec les horaires...

Le reste tout fonctionne comme tu me l'as décris... C'est top ! Merci beaucoup...
 

Muhadini

XLDnaute Junior
Reprends le dernier fichier du Post #38. Les couleurs sur les horaires devraient être maintenant correctes.
Salut Dudu,

Merci beaucoup, effectivement maintenant c'est en ordre :) !

Juste une dernière chose après promis t'entendra pas parler de moi pour un planning 😂.

1. Quand on rajouter un participant sur la liste via ton système, je n'arrive pas à le monter plus haut dans les lignes sur mon agenda (un message d'erreur apparaît). Comme les participants sont par catégorie ou par secteur d'activité, j'ai besoin de lui changer d'emplacement avec sont horaire et pour les semaines suivantes également.

2. Quand une personne est supprimé pour la semaine actuelle, effectivement il est bien présent pour les semaines passé (c'est top, il reste un traçage ou cas ou) mais il faudrait qu'il ne sois plus présent pour les semaines à venir sur le planning.

Le reste c'est au top !! Tout fonctionne correctement et c'est juste parfait... Mercii encore :cool:;)
 

Dudu2

XLDnaute Barbatruc
Bonjour,
Autant je comprends (1) que pour monter ou descendre un utilisateur dans la liste il faut faire du code, autant je ne comprends pas (2) pourquoi un utilisateur supprimé la semaine 10 ré-apparaitrait soudain les semaines suivantes 11, 12, etc... en chargeant les horaires de la semaine précédente.
 

Dudu2

XLDnaute Barbatruc
Voici le fichier modifié pour permettre de déplacer un participant dans la liste.
Il faut bien sûr récupérer la base de données et éventuellement les listes du fichier en cours d'utilisation.
 

Pièces jointes

  • Horaire.xlsm
    212.4 KB · Affichages: 14
Dernière édition:

Muhadini

XLDnaute Junior
Voici le fichier modifié pour permettre de déplacer un participant dans la liste.
Il faut bien sûr récupérer la base de données et éventuellement les listes du fichier en cours d'utilisation.

Bonjour Dudu,

j’espère que vous allez bien. Cela plusieurs mois qu’on travaille avec le fichier que vous nous avez fait.

Tout est parfait. Il y a juste une chose que j’ai pas réussi à passer outre.

1. Quand on veut reporter de semaine en semaine les horaires, il reporte également les notes comme M (maladie) V (vacances) etc.
Est ce qu’il y a une possibilité de reporter que les horaires de base ? Mais ces derniers varient, des participants change de taux de pourcentage souvent, donc l’horaire n’est pas le même tout le temps…

2. Quand on supprimer un participant, il ne le supprime pas dans le passé ce qui est correcte mais est ce que c’est possible de le supprimer sur toutes semaines à venir ? Parce qu’actullement, quand la personne n’est plus là la semaine prochaine, on doit le supprimer semaine sur semaine suivante. Parce que nous avons déjà copié plusieurs semaine en avance.

Merci d’avance pour votre retour, je vous souhaite une belle soirée 👋
 

Dudu2

XLDnaute Barbatruc
Bonjour,

Point 1:
Est ce qu’il y a une possibilité de reporter que les horaires de base ?
Réponse -> OK. Seules les cellules contenant des heures peuvent être copiées.
Celles qui contiennent des codes d'absence seront vides dans la recopie. Sinon il faut me donner la règle de valorisation des codes d'absences par des horaires, et ça c'est très complexe car la situation des absences varie.

Est-ce qu'il ne vous manque pas des modèles d'horaires à appliquer aux personnes plutôt que de décrire jour par jour leurs horaires ?
Cela aurait été plus simple à la saisie en choisissant un modèle pour chaque personne quitte à pouvoir appliquer les absences sur saisie spéciale.

Mais ces derniers varient, des participants change de taux de pourcentage souvent, donc l’horaire n’est pas le même tout le temps…
Qu'est-ce que je fais de cette autre phrase ? Quelle est la demande qu'elle représente ? Comprends pas.

Point 2:
C'est sûrement faisable.
 
Dernière édition: