Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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: 83

Dudu2

XLDnaute Barbatruc
J'ai géré l'affichage des semaines suivante/précédente et le stockage des valeurs en feuille "BaseDeDonnées"
Aussi dé-fusionné les cellules participants (les cellules fusionnées compliquent le code inutilement).
Et retiré la Validation des données sur les cellules horaires pour mes tests car c'était pas utilisable.
A part ça je n'ai rien changé au "look & feel" de la page.

Après je ne sais pas trop ce que tu veux faire avec tes formulaires. Pour ajouter ou supprimer un participant il suffit d'ajouter ou supprimer sa ligne, je ne vois pas trop la valeur ajoutée d'un formulaire mais si tu veux faire ça c'est possible.

Assigner des valeurs dans les horaires sur une semaine par formulaire c'est possible aussi mais c'est pareil, ça peut se faire directement dans la feuille. Pour modifier les horaires sur plusieurs semaines c'est plus compliqué car il faut aller taper dans le BDD sans l'intermédiaire de la feuille utilisée pour la semaine.

Le code que j'ai ajouté est dans le Module_GestionSemaines.
J'ai ajouté un Sub Worksheet_Change() et un Sub CommandButtonEnregistrer() dans la feuille "horaire_normal"
 

Pièces jointes

  • horaire.xlsm
    106.8 KB · Affichages: 12
Dernière édition:

Dudu2

XLDnaute Barbatruc
Et surtout merci pour avoir posté ce sujet et pour les quelques heures de développement que j'ai passées pour proposer une solution. Ça fait toujours plaisir d'avoir un retour positif du demandeur !
 

Muhadini

XLDnaute Junior
Et surtout merci pour avoir posté ce sujet et pour les quelques heures de développement que j'ai passées pour proposer une solution. Ça fait toujours plaisir d'avoir un retour positif du demandeur !
Salut dudu2,

Désolé de répondre que maintenant, mais j'étais très malade... Je viens de regarder ton codage, effectivement cela sauvegarde le tout comme demandé Merciiiii beaucoup !

Maintenant faut que je regarde encore pour permettre de rentrer mes valeurs sur le tableau avec une macro que j'avais commencé mais pas terminé !
 

Dudu2

XLDnaute Barbatruc
Hello,
Ok, je croyais que tu avais disparu des radars après ta demande.
J'espère que tu vas mieux.
Je vais faire ton code pour remplir le tableau avec le UserForm.
Simplement on ne pourra rentrer des valeurs que pour la semaine affichée.
Faire une saisie pour plusieurs semaines impliquerait non plus de travailler sur le tableau affiché mais aussi sur la "Base de Données" et ça devient compliqué.
J'ai fait un calendrier qui est limité à la semaine pour s'adapter à cette contrainte.
 

Muhadini

XLDnaute Junior
Merci de demander, je vais mieux merci...

oui sans soucie sur la semaine ça va très bien , merci encore dudu2
 

ChTi160

XLDnaute Barbatruc
Bonjour
Bonjour Dudu ,le Forum
j'espère que vous allez bien !
Question
à quoi correspondent les AM1 /AM2 et PM1 / PM2 dans la feuille "BaseDeDonnées"
Pourquoi de fois la période ? dans Absence et Horaires (c'est la même normalement !)
si tu travailles sur le tableau ,pourquoi ne pas remplir les dates depuis le Tableau plutôt qu'a partir d'un calendrier ?
Merci
Bonne fin de journée
Jean marie
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bonjour @ChTi160,
à quoi correspondent les AM1 /AM2 et PM1 / PM2 dans la feuille "BaseDeDonnées"
@Muhadini a divisé les journées en 4 slots. J'ai donc reproduit ces slots dans la feuille "BaseDeDonnées" AM1, AM2 (ante-meridiem 1 & 2) et PM1, PM2 (post-meridiem 1 & 2).
Pourquoi de fois la période ?
Je ne comprends pas la question.
pourquoi ne pas remplir les dates depuis le Tableau plutôt qu'a partir d'un calendrier ?
Le calendrier c'est pour saisir les dates début & fin dans le UserForm.
Le calendrier adressera les 7 jours de la semaine, pas davantage.
@Muhadini veut pouvoir utiliser son UserForm pour entrer des valeurs répétitives pour les jours de la semaine je suppose. J'y vois une utilité.

Par contre le UserForm pour ajouter ou supprimer un participant, je n'y vois pas d'utilité puisque la liste de la feuille est la référence et il suffit donc d'y supprimer ou ajouter une ligne (clic droit dans le tableau structuré puis insérer ou supprimer ligne(s)) pour ajouter ou supprimer un participant.
Sauf à faire du GUI, c'est possible.

Je vais coder le 1er UserForm ce soir.
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re Dudu

Le AM/PM , je connais mais c'est le pourquoi de ces deux références ?
Ensuite lorsque tu ouvres le Userform pourquoi ne pas soit récupérer les deux dates limites de la semaine dans la Feuille Source ou alors les limites de la semaine vont être mises à jour via le Userform ?
mais bon !
je ne fais que suivre Lol
Bonne fin de soirée
jean marie
 

ChTi160

XLDnaute Barbatruc
Re
Laisse tomber ! lol
je me pose sûrement trop de questions Lol
Bonne continuation
je découvrirai bien à quoi sont destinées ces Cases lol
le principal c'est que "Muhadini" le sache et je suis là quasiment sûr qu'il le sait Lol
Merci
Bonne fin de Soirée
jean marie
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
J'ai pas fait des gros tests et j'ai fait du RAD. Mais bon comme je maîtrise quand même un peu il ne devrait pas y avoir trop de dégâts. Me les signaler si besoin avec le scénario pour reproduire.

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

Discussions similaires

Réponses
14
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…