Bonjour !
Je suis un utilisateur régulier d’Excel (liste, macro, fonctions) mais un débutant en VBA (j’ai bidouillé il y a très longtemps avec DBase III !).
Mon problème est le suivant :
J’ai développé une feuille Excel pour calculer les heures travaillées sur un calendrier annuel découpé en semaine. Elle comprend une colonne avec la date (Format 01/01/2011) et une cellule adjacente (même ligne, colonne de droite) pour le nombre d’heures travaillées ce jour là.
De façon à ne pas réécrire le calendrier tous les ans, je mets à jour le calendrier de l’année à partir d’une feuille « Paramètres » où je saisie, entre autres la date du premier jour de la semaine « 03/01/2011 » pour l’année considérée. Les autres dates s’enchaînant automatiquement avec une formule (Jour +1).
Je souhaite aussi automatiser (lancement avec un bouton « Mise à jour » ) les jours fériés et les périodes de vacances où le nombre d’heures travaillées est automatiquement mis à « 0 » (avec un fond rouge et la cellule protégée) et là je pense avoir besoin de programmer en VBA.
Dans ma feuille « Paramètres » je rentre les dates (01/05/2011) des jours fériés (1° mai, Pâques, etc) ainsi que les dates du début (19/03/2011) et de la fin (06/03/2011) des périodes de vacances scolaires pour l’année considérée. En effet, hormis le 1° et le 8° mai les autres dates changent suivant l’année.
Je pense qu’il me faut travailler avec la fonction Array « Jours fériés » pour lire la 1° date du jour férié dans le tableau « Jours fériés » puis aller la chercher dans le table « Calendrier annuel » et une fois trouver cette date, copier la cellule qui se situe à gauche du jour férié choisi dans le tableau « Jours fériés » et la coller dans la cellule à gauche de cette date dans le tableau « Calendrier ». Et ainsi de suite pour toutes les dates de jours fériés.
Je pense qu’il faudrait utiliser des boucles imbriquées. Pour les périodes de vacances, il faut probablement une boucle supplémentaire pour gérer le fait que je n’ai que la date de début et de fin.
Cela m’arrangerait bien d’avoir une syntaxe correcte comme modèle.
Merci par avance pour l’assistance !,
GDM