Parcourir une ligne de planning

  • Initiateur de la discussion Initiateur de la discussion NeoTraX
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

NeoTraX

XLDnaute Nouveau
Bonjour,

Je suis entrain de me concocter une macro excel qui me permettrait de calculer mon salaire en fonction des horaires de mon planning.
Je suis nouveau en vba, mais j'ai déjà réussi à détecter la ligne ou mes horaires sont affichée en prennant un Range("A1:A50") et en testant la valeur de chaque cellule.
J'ai donc obtenu la ligne ou mon planning est affiché.

En fonction du mois de salaire que je veux calculer il faudrait que j'arrive à copier la valeur des celulles comprises dans ce mois avec l'intégralité de leur proprieté (couleur, texte gras, souligné etc...)

Le soucis que je n'arrive pas à résoudre :
- Ma feuille de paie se calcule sur un mois du lundi au lundi exclu sur 4 semaines (donc je peux avoir à détecter une plage du lundi 31/10 au dimanche 27/11 par exemple.)

Je n'arrive pas à savoir comment récupérer cette plage de cellule en fonction du mois que je voudrais calculer. En gros trouver le premier lundi (mais qui n'appartient pas forcément au mois demandé et le dernier dimanche qui n'appartient pas forcément au mois demandé non plus)

Qui aurait une idée ?

Je joins un planning qui ressemble au mien pour vous donner une idée car la je cale 😕
 

Pièces jointes

Dernière édition:
Re : Parcourir une ligne de planning

Bonjour
Une ébauche

A+ François

Bonjour Francois.

Tout d'abord merci pour ce coup de pouce car c'est exactement ce que je voulais faire.
J'essaie d'exclure le dernier lundi qui s'affiche en modifiant ceci :
Range(Cells(1, i), Cells(3, i + 27)).Copy

PAR :
Range(Cells(1, i), Cells(3, i + 26)).Copy


Dans la même boucle, VBA me plante sur la ligne suivante , mais je ne comprends pas pourquoi...

Code:
Sheets("paie").Paste Destination:=Worksheets("paie").Range("b1")

Peux-tu m'expliquer ?
 
Re : Parcourir une ligne de planning

Hoho effectivement nickel !!!

Par contre je m'apercois, en testant octobre, que je ne devrais pas me limiter à 4 semaines...

Y'en a 5 en fait pour cet exemple...
Et j'ai vérifié.... Je déclare bien ma paie sur ces 5 semaines. Il faut donc que j'affiche le meme debut mais être sur que le 30 ou 31 du mois soit bien compris dans la derniere semaine...

PS : Pas besoin de supprimer les cellules fusionnées apres la correction, le code marche parfaitement mis à part sur la 5eme semaine.
 
Dernière édition:
Re : Parcourir une ligne de planning

Bonjour
Le problème le 1 du mois ne tombe pas un lundi exemple jeudi, tu souhaites que j'affiche la semaine complète soit par exemple
lundi 28,mardi 29, mercredi 30, jeudi 1, etc...
Mais pour le mois précédent j'afficherai aussi cette semaine???? (je connais pas un patron qui paie 2 fois la même semaine...lol...)

A+ François
 
Re : Parcourir une ligne de planning

Effectivement tu soulèves un point non négligeable.

Pour éclaircir les choses,
Je travail sur un cycle de 6 semaines.
J'ai longuement réfléchi sur le problème...

En sommes je pense pouvoir résumer les critères à ceci :
- Le 1er du mois demandé à calculer doit être dans le planning.
- Le 1er du mois suivant ne doit pas s'y retrouver.
- On calcul toujours avec des semaines entières. (du lundi au dimanche inclu)

PS : J'ai aussi essayé le fichier rattaché dans ton dernier message et il se plante sur une proprieté .tintandshade = 0 dans le module, alors que bizarrement tout à l'air d'y être... Données & style des cellules.
 
Dernière édition:
Re : Parcourir une ligne de planning

Merci bien !!!

On y est même parfaitement 🙂

Du coup je viens d'intégrer ca à mon fichier de test, ca marche aussi à la perfection.

Pour le moment il me reste le parsing des cellules pour gérer le découpage des heure effectuées, puis l'affichage sur la feuille salaire 🙂

Je fourni un petit exemple de ce qui a déjà été fait + le planning de test, car à la base mon planning est dans un fichier externe donc j'ai réadapter pour se faire...

Petites explications :
En extrayant mon planning (lequel n'est pas dans le classeur ouvert, mais ailleurs sur une partition réseau), il me reste le parsing du style des cellules à faire pour copier les résultats sur la feuille salaire.
La feuille configuration sert à configurer la macro dans son ensemble.
Sur cette derniere il faut générer les jours fériés en fonction de l'année configurable dans le tableau. Ces derniers générés, me serviont dans le futur parsing qui découpera les heures majorées.
Une liste déroulante pour choisir le nom du planning est créée en fonction du tableau noir de la feuille. Un code vba (que j'ai fait juste pour le fun car il y avait plus simple comme méthode ^^) fait la correspondance entre le nom de fichier choisi et son véritable nom dans la colonne de droite.
Ah oui... il me reste aussi la seleciton de la feuille du planning en fonction du semestre, mais ca devrait pas être long.

Je fournirai la fin de ce petit outil quand il sera fini 😉

En attandant... voici ou j'en suis.
 

Pièces jointes

Re : Parcourir une ligne de planning

Bonjour
La nuit porte conseil...lol...
J'ai tout changé...
J'ai mis dans la cellule gc2 une formule qui calcul le dernier dimanche du mois
en faisant gc2-date de la cellule b3 +2 j'ai la dernière colonne à copier....
Donc, si tu veux mettre cette formule ailleurs n'oublie pas de changer dans la macro ligne 20 et 21

Range("gc1").Value = firstjour
derjour = Range("gc2").Value

+ mes dernieres modif...lol...
A+ François
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
211
Retour