Définir une plage des jours d'un calendrier mensuel

Résolu/Fermé
Vaudousi - 6 mars 2013 à 14:23
PHILOU10120 Messages postés 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 - 7 mars 2013 à 11:13
Bonjour,
J'ai téléchargé depuis le net un exemple de calendrier perpétuel affichant 12 mois. Il fonctionne parfaitement. Sur le m^me feuille j'ai un tableau de 12 lignes et trois colonnes (Mois, NbJours, Reste). Les noms de mois sont remplis. Je voudrais colorier (manuellement) en rouge les jours de congé d'une personne et que la colonne NbJours soit remplie (automatiquement) si j'ajoute ou soustrait une cellule colorée.

Je sais comment compter les cellules coloriées, mais pas comment définir les plages de recherche de chaque mois.

Merci pour votre aide. Salutations
José

5 réponses

PHILOU10120 Messages postés 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 795
6 mars 2013 à 15:51
Bonjour

Pouvez-vous insérer une colonne devant votre tableau mensuel et mettre cette formule
colonne A =mois(B1) B1 contient la date du jour
et pour compter la plage du mois indéxer la formule sur cette colonne

=NB.SI.ENS(A1:A31;2;C1:C31;"CA")

Dans cet exemple on vérifie le mois en colonne A et on compte le nombre de jour marqué Congés Annuel "CA"
0
Bonjour Philou

Je vais essayer d'être plus clair. Je voudrais définir une plage de cellules non vides : les dates d'un mois.

Chaque calendrier mensuel a 42 cellules. le 1er janvier 2013 commence un mardi. La première cellule est donc vide. les treize dernières cellules sont vides.

Je n'arrive pas à faire fonctionner une procédure voisine trouvée sur ce site.

Je suis donc toujours en quête d'aide.

Merci

José
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
6 mars 2013 à 21:10
Bonsoir

Comment compte tu les cellules colorées ?
par une macro en VBA ? Quel en est le code ?

Cdlmnt
0
Cette routine fonctionne correctement. Je n'en suis pas l'auteur.

'La couleur n'est pas donnée par un numéro, mais par la couleur dans une cellule.
Public Function NbColor(Plage As Range, vCellcolor As Range) As Byte
Dim vColorTest As Long
Dim Compteur As Long
Dim vColorCell As Range

Compteur = 0
vColorTest = vCellcolor.Interior.Color
For Each vColorCell In Plage
If vColorCell.Interior.Color = vColorTest Then
Compteur = Compteur + 1
End If
Next vColorCell

NbColor = Compteur
End Function

'Exemple d'utilisation :

'A1:A20 est la plage de cellule susceptible d'avoir les couleurs
'A21 est la référence de la cellue qui contient la couleur à tester.
'On saisit dans une cellule =NbColor(A1:A20;A21)

Salut
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
6 mars 2013 à 22:49
La macro fonctionne bien alors où est le problème ? pourquoi s'inquiéter des cellules vides ?
Si le mois de janvier est par exemple en A2 A40
Et que la janvier de ton propre tableau est ligne 42 avec NBjours en B42 et Reste enC42 et si tu colore en rouge une cellule test en D42, la formule =NBColor(A2:40;D42) va bien te donner le nombre de cases en rouge en janvier dans le calendrier
Où il y a un élément que je n'ai pas compris ?

Cdlmnt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PHILOU10120 Messages postés 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 795
7 mars 2013 à 11:13
Bonjour

Pour mon exemple
Colonne A9:A50 la formule =MOIS(B1)
Colonne B9:B50 la date au format JJ JJJJ
colonne C9:C50 les cellules colorées
en C7 valeur 1 pour janvier
en D7 valeur 2 pour février
en C1:C3 les cellules avec les couleurs de référence


En D1:D3 cette formule

=nbcolor(INDIRECT(ADRESSE(EQUIV(C$7;$A$9:$A$50;0)+8;3;1;1)&":"&ADRESSE(EQUIV(D$7;$A$9:$A$50;0)+7;3;1;1));$C1)
0