Bonjour Yu.plop,
Tu a écrit :
J'ai essayé la méthode de dhany et c'est exactement ça qu'il me faut
Merci pour ton retour, pour le ♡, et pour avoir passé le sujet en résolu.
NB : Il y avait très peu de données dans le fichier exemple, mais je pense que sur ton vrai fichier, avec des données réelles plus nombreuses, tu as pu voir que le travail est fait pour les 12 mois et pas uniquement pour Janvier.
As-tu remarqué le texte blanc (au lieu de noir) pour les mois ayant une couleur de remplissage foncée ? c'est bien sûr pour que le texte soit plus lisible ➯ meilleur contraste.
Tu a écrit :
il me reste plus qu'à comprendre comment tu t'y es pris
Voici les 2 points les moins évidents de mon programme (exemples pour le tableau Janvier A5:G16) :
1) La plage C5:C16 est pour les dates
a) Year([C5]) = année de 02/05/2017 = 2017 ; 2017 - 2016 = 1 ➯ destination : 1er tableau à droite
b) Year([C6]) = année de 05/03/2017 = 2017 ; 2017 - 2016 = 1 ➯ destination : 1er tableau à droite
c) Year([C7]) = année de 05/05/2018 = 2018 ; 2018 - 2016 = 2 ➯ destination : 2ème tableau à droite
Attention : année d'une cellule vide = 1899 ; vérif facile avec : MsgBox Year([C8])
d) Year([C8]) = année d'une cellule vide = 1899 ; 1899 - 2016 = -117 ➯ test pour éviter de faire le travail :
If .Value <> "" And k >= 0 Then
2) Pour l'instruction : Cells(lg(k), 11 - 7 * (k = 2)) = .Value
La ligne est lg(k) ➯ si k=1 : lg(1) ; si k=2 : lg(2)
Ne pas oublier qu'avec la priorité des opérateur, la multiplication est effectuée en premier, avant la soustraction.
Donc : 11 - 7 * (k = 2) = 11 - (7 * (k = 2))
La colonne est : 11 - 7 * (k = 2)
Si k=1 : (k = 2) est faux et retourne 0 ; 11 - 7 * (k = 2) = 11 - 7 * (0) = 11 - 0 = 11 : colonne K
Si k=2 : (k = 2) est vrai et retourne -1 ; 11 - 7 * (k = 2) = 11 - 7 * (-1) = 11 - (-7) = 11 + 7 = 18 : colonne R
Si t'as un léger mal de tête, désolé : j'ai pas d'aspirine !
dhany