Encore une Case

Le
Jacquouille
Bonjour,
Dans ce filet de macro, appelé via une "private sub", le PC ouvre la feuille
baptisée 2013 (merci Denis)
Ensuite, il me colorie d'abord les dates d'anniversaire et de congés en
général (Pâques, Noël .)
Puis, colorie la date du jour.
Problème: dans quelques jours, il y aura le changement d'année. Ce sera Ok
pour le choix de la feuille (re-merci Denis), mais les dates
Comment puis-je faire comprendre à ce gros nigaud (le PC) qu'il doit faire
41282+365 (et, mieux: 366 pour les années bissextiles)?
N'y aurait-il pas moyen de faire un truc du genre : case 41282Êse +nb
jours de l'année du nom de la feuille?

Sub calend()
Worksheets(CStr(Year(Date))).Select ' Merci Denis
For Each C In Range("A2:L32")
C.Interior.ColorIndex = xlnonne ' enlève toutes les couleurs
If [C] <> "" Then
If Weekday(C) = 7 Or Weekday(C) = 1 Then C.Interior.ColorIndex = 44
End If ' colorie les WE
Select Case CLng(C.Value) 'Case C.Value + met en couleur
différentes dates
Case 41282, 41298, 41364, 41365, 41402, 41476, 41487, 41498,
41501, 41579, 41589, 41633
C.Interior.ColorIndex = 38
End Select
If [C] = Date Then C.Interior.ColorIndex = 42 ' colorie la date du jour
Next
End Sub

http://cjoint.com/?CLvqm5ob7fG

Déjà merci
Bon WE à tous.
Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #25885862
Bonjour,
Pour faire + 1 année (bissextile ou non) :
Dat = DateSerial(Year(41282) + 1, Month(41282), Day(41282))
Daniel


Bonjour,
Dans ce filet de macro, appelé via une "private sub", le PC ouvre la feuille
baptisée 2013 (merci Denis)
Ensuite, il me colorie d'abord les dates d'anniversaire et de congés en
général (Pâques, Noël ....)
Puis, colorie la date du jour.
Problème: dans quelques jours, il y aura le changement d'année. Ce sera Ok
pour le choix de la feuille (re-merci Denis), mais les dates ...
Comment puis-je faire comprendre à ce gros nigaud (le PC) qu'il doit faire
41282+365 (et, mieux: 366 pour les années bissextiles)?
N'y aurait-il pas moyen de faire un truc du genre : case 41282Êse +nb jours
de l'année du nom de la feuille?
---------------------------------------------
Sub calend()
Worksheets(CStr(Year(Date))).Select ' Merci Denis
For Each C In Range("A2:L32")
C.Interior.ColorIndex = xlnonne ' enlève toutes les couleurs
If [C] <> "" Then
If Weekday(C) = 7 Or Weekday(C) = 1 Then C.Interior.ColorIndex = 44
End If ' colorie les WE
Select Case CLng(C.Value) 'Case C.Value + met en couleur
différentes dates
Case 41282, 41298, 41364, 41365, 41402, 41476, 41487, 41498,
41501, 41579, 41589, 41633
C.Interior.ColorIndex = 38
End Select
If [C] = Date Then C.Interior.ColorIndex = 42 ' colorie la date du jour
Next
End Sub
---------------------------------------
http://cjoint.com/?CLvqm5ob7fG
------------------------------------------
Déjà merci
Bon WE à tous.
Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
MichD
Le #25885952
Bonjour,

Pourquoi ne pas masquer une feuille et d'y mettre tes dates de cette manière
:
et tu remplaces les 1 par le mois et le jour de chacune de tes dates.
ne pas oublier que dans la fonction date c'est l'année, le mois et le jour.

En A1
ÚTE(ANNEE(AUJOURDHUI());1;1)
En A2
ÚTE(ANNEE(AUJOURDHUI());1;1)
En A3
ÚTE(ANNEE(AUJOURDHUI());1;1)

Pour masquer la feuille, elle ne sera plus accessible via l'interface
de la feuille de calcul
Worksheets("NomAMasquer").Visible = xlSheetVeryHidden

Et ta procédure devient ceci. Et cela est valide jusqu'à l'an 9999
Peut-être prendras-tu ta retraite avant!!! ;-)
'--------------------------------------------------------
Sub calend()
Worksheets(CStr(Year(Date))).Select
For Each c In Range("A2:L32")
' enlève toutes les couleurs
c.Interior.ColorIndex = xlnonne
If [c] <> "" Then
' colorie les WE
If Weekday(c, 2) > 5 Then
c.Interior.ColorIndex = 44
End If
'Vérifie si la date C existe dans la
'feuille masquée dans A1:A12
With Worksheets("NomAMasquer")
If IsNumeric(Application.Match(c, .Range("A1:A12"), 0)) Then
c.Interior.ColorIndex = 38
End If
End With
End If
If [c] = Date Then c.Interior.ColorIndex = 42 ' colorie la date du
jour
Next
End Sub
'--------------------------------------------------------
Jacquouille
Le #25886042
Merci Daniel
Il est vrai que c'est une bonne façon d'ajouter 1 an.
Merci pour cette approche que je garde
Bonne soirée


Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"DanielCo" a écrit dans le message de groupe de discussion :
l94dvq$n84$

Bonjour,
Pour faire + 1 année (bissextile ou non) :
Dat = DateSerial(Year(41282) + 1, Month(41282), Day(41282))
Daniel


Bonjour,
Dans ce filet de macro, appelé via une "private sub", le PC ouvre la
feuille baptisée 2013 (merci Denis)
Ensuite, il me colorie d'abord les dates d'anniversaire et de congés en
général (Pâques, Noël ....)
Puis, colorie la date du jour.
Problème: dans quelques jours, il y aura le changement d'année. Ce sera
Ok pour le choix de la feuille (re-merci Denis), mais les dates ...
Comment puis-je faire comprendre à ce gros nigaud (le PC) qu'il doit faire
41282+365 (et, mieux: 366 pour les années bissextiles)?
N'y aurait-il pas moyen de faire un truc du genre : case 41282Êse +nb
jours de l'année du nom de la feuille?
---------------------------------------------
Sub calend()
Worksheets(CStr(Year(Date))).Select ' Merci Denis
For Each C In Range("A2:L32")
C.Interior.ColorIndex = xlnonne ' enlève toutes les couleurs
If [C] <> "" Then
If Weekday(C) = 7 Or Weekday(C) = 1 Then C.Interior.ColorIndex = 44
End If ' colorie les WE
Select Case CLng(C.Value) 'Case C.Value + met en couleur
différentes dates
Case 41282, 41298, 41364, 41365, 41402, 41476, 41487, 41498,
41501, 41579, 41589, 41633
C.Interior.ColorIndex = 38
End Select
If [C] = Date Then C.Interior.ColorIndex = 42 ' colorie la date du
jour
Next
End Sub
---------------------------------------
http://cjoint.com/?CLvqm5ob7fG
------------------------------------------
Déjà merci
Bon WE à tous.
Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
Jacquouille
Le #25886032
Bonsoir Denis,

Il suffit de bien poser sa question... -)
Cette approche via la feuille masquée (cousine du Concombre du même nom) où
les dates sont écrites à partir de l'année d'aujourd'hui() est géniale.
Tout fonctionne à merveille, comme je le désirais.
Cela est même mieux et plus concis pour badigeonner les WE.
Cette démarche me parait un peu parente de celle de Série.Jours.Ouvrés qui
va consulter une liste de dates. GENIAL !
Sauf ma pension -(
Heureusement que j'ai été prudent et que je l'ai prise en 2010.-))
Grand merci à toi
Bonne soirée et surtout un bon WE.
RV en 9.999 pour débugger la macro. -)

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
l94f32$pra$

Bonjour,

Pourquoi ne pas masquer une feuille et d'y mettre tes dates de cette manière
:
et tu remplaces les 1 par le mois et le jour de chacune de tes dates.
ne pas oublier que dans la fonction date c'est l'année, le mois et le jour.

En A1
ÚTE(ANNEE(AUJOURDHUI());1;1)
En A2
ÚTE(ANNEE(AUJOURDHUI());1;1)
En A3
ÚTE(ANNEE(AUJOURDHUI());1;1)

Pour masquer la feuille, elle ne sera plus accessible via l'interface
de la feuille de calcul
Worksheets("NomAMasquer").Visible = xlSheetVeryHidden

Et ta procédure devient ceci. Et cela est valide jusqu'à l'an 9999
Peut-être prendras-tu ta retraite avant!!! ;-)
'--------------------------------------------------------
Sub calend()
Worksheets(CStr(Year(Date))).Select
For Each c In Range("A2:L32")
' enlève toutes les couleurs
c.Interior.ColorIndex = xlnonne
If [c] <> "" Then
' colorie les WE
If Weekday(c, 2) > 5 Then
c.Interior.ColorIndex = 44
End If
'Vérifie si la date C existe dans la
'feuille masquée dans A1:A12
With Worksheets("NomAMasquer")
If IsNumeric(Application.Match(c, .Range("A1:A12"), 0)) Then
c.Interior.ColorIndex = 38
End If
End With
End If
If [c] = Date Then c.Interior.ColorIndex = 42 ' colorie la date du
jour
Next
End Sub
'--------------------------------------------------------
Jacky
Le #25886422
Hello Jacques

Pourquoi utiliser du VBA ?
La MFC fait très bien cela....
http://cjoint.com/?CLvu1pzKEcz
--
Salutations
JJ


"Jacquouille"
Bonjour,
Dans ce filet de macro, appelé via une "private sub", le PC ouvre la feuille baptisée 2013 (merci Denis)
Ensuite, il me colorie d'abord les dates d'anniversaire et de congés en général (Pâques, Noël ....)
Puis, colorie la date du jour.
Problème: dans quelques jours, il y aura le changement d'année. Ce sera Ok pour le choix de la feuille
(re-merci Denis), mais les dates ...
Comment puis-je faire comprendre à ce gros nigaud (le PC) qu'il doit faire 41282+365 (et, mieux: 366 pour
les années bissextiles)?
N'y aurait-il pas moyen de faire un truc du genre : case 41282Êse +nb
Jacquouille
Le #25886442
Salut Jacky
C'est vrai que la MEFC fait bien cela.
J'avais d'ailleurs commencé avec. Tu as pu t'en rendre compte à la ligne 32
où la formule se trouve écrite.
Les formules que tu emploies sont meilleures que les miennes, mais il
faudrait y ajouter un "si(estvide(a3)..." afin de contourner les fins de
mois difficiles (29,30 et 31 FEV ainsi que les 31 avril,juin, sept et
nov.....
Merci pour cette bonne approche. Je note tes formules.
Bonne fin de WE
Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jacky" a écrit dans le message de groupe de discussion :
52b5f23a$0$2114$

Hello Jacques

Pourquoi utiliser du VBA ?
La MFC fait très bien cela....
http://cjoint.com/?CLvu1pzKEcz
--
Salutations
JJ


"Jacquouille" l94bsl$i1u$
Bonjour,
Dans ce filet de macro, appelé via une "private sub", le PC ouvre la
feuille baptisée 2013 (merci Denis)
Ensuite, il me colorie d'abord les dates d'anniversaire et de congés en
général (Pâques, Noël ....)
Puis, colorie la date du jour.
Problème: dans quelques jours, il y aura le changement d'année. Ce sera
Ok pour le choix de la feuille
(re-merci Denis), mais les dates ...
Comment puis-je faire comprendre à ce gros nigaud (le PC) qu'il doit faire
41282+365 (et, mieux: 366 pour
les années bissextiles)?
N'y aurait-il pas moyen de faire un truc du genre : case 41282Êse +nb
Albert
Le #25886472
Bonsoir /Bonjour Jacquouille et Jacky

Connaissez-vous les calendriers de Jacques Boisgontier, et son calendrier
Annuel
Je les utilise beaucoup et j'ai créé votre calendrier sans VBA pour la MEFC
Mais la formule de Jacky est meilleure et plus simple.

Voir cjoint http://cjoint.com/?CLvwrkU5wGl

Joyeux Noël et Bonne Année

albertri-at-videotron.ca.invalid


http://boisgontierjacques.free.fr/fichiers/Matriciel/CalendrierAnnuel.xls

"Jacky" news:52b5f23a$0$2114$
Hello Jacques

Pourquoi utiliser du VBA ?
La MFC fait très bien cela....
http://cjoint.com/?CLvu1pzKEcz
--

Jacky
Le #25886542
Re..
Si tu souhaites plus complet tu peux faire référence à celui-ci
http://cjoint.com/?CLvxHd0JjnV

--
Salutations
JJ


"Jacquouille"
Salut Jacky
C'est vrai que la MEFC fait bien cela.
J'avais d'ailleurs commencé avec. Tu as pu t'en rendre compte à la ligne 32 où la formule se trouve écrite.
Les formules que tu emploies sont meilleures que les miennes, mais il faudrait y ajouter un
"si(estvide(a3)..." afin de contourner les fins de mois difficiles (29,30 et 31 FEV ainsi que les 31
avril,juin, sept et nov.....
Merci pour cette bonne approche. Je note tes formules.
Bonne fin de WE
Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jacky" a écrit dans le message de groupe de discussion : 52b5f23a$0$2114$

Hello Jacques

Pourquoi utiliser du VBA ?
La MFC fait très bien cela....
http://cjoint.com/?CLvu1pzKEcz
--
Salutations
JJ


"Jacquouille"
Bonjour,
Dans ce filet de macro, appelé via une "private sub", le PC ouvre la feuille baptisée 2013 (merci Denis)
Ensuite, il me colorie d'abord les dates d'anniversaire et de congés en général (Pâques, Noël ....)
Puis, colorie la date du jour.
Problème: dans quelques jours, il y aura le changement d'année. Ce sera Ok pour le choix de la feuille
(re-merci Denis), mais les dates ...
Comment puis-je faire comprendre à ce gros nigaud (le PC) qu'il doit faire 41282+365 (et, mieux: 366 pour
les années bissextiles)?
N'y aurait-il pas moyen de faire un truc du genre : case 41282Êse +nb




Jacquouille
Le #25886532
Bonsoir Albert

Le 3° Jacques fait bien les choses aussi.
Cependant, je trouve plus élégant de mettre un si(estvide(a3); ..... que
mettre le lettrage en blanc. Pour peu que l'on veuille colorer le fond du
calendrier et qu'on ne sache pas bricoler la MEFC .....
La formule de Jacky est plus mieux, AMHA.
Mais, merci pour cette approche.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Albert" a écrit dans le message de groupe de discussion :
l950ur$5vb$

Bonsoir /Bonjour Jacquouille et Jacky

Connaissez-vous les calendriers de Jacques Boisgontier, et son calendrier
Annuel
Je les utilise beaucoup et j'ai créé votre calendrier sans VBA pour la MEFC
Mais la formule de Jacky est meilleure et plus simple.

Voir cjoint http://cjoint.com/?CLvwrkU5wGl

Joyeux Noël et Bonne Année

albertri-at-videotron.ca.invalid


http://boisgontierjacques.free.fr/fichiers/Matriciel/CalendrierAnnuel.xls

"Jacky" news:52b5f23a$0$2114$
Hello Jacques

Pourquoi utiliser du VBA ?
La MFC fait très bien cela....
http://cjoint.com/?CLvu1pzKEcz
--

Albert
Le #25886612
"Jacquouille" news:l9555a$gdo$
Bonsoir Albert

Le 3° Jacques fait bien les choses aussi.
Cependant, je trouve plus élégant de mettre un si(estvide(a3); ..... que
mettre le lettrage en blanc. Pour peu que l'on veuille colorer le fond du
calendrier et qu'on ne sache pas bricoler la MEFC .....
La formule de Jacky est plus mieux, AMHA.
Mais, merci pour cette approche.
Jacquouille




Bonjour / Bonsoir

C'est vrai qu'un si(estvide(a3); est plus élégant que mettre lle lettrage
en blanc mais avec la matricielle de JB elle n'est pas vide.
Mais ce que je trouvais difficile c'est de mettre le numéro du jour pour
2013 et de rajouter 365 pour 2014 et ainsi refaire ce calcul pour chaque
année à venir, pour cette raison la MEFC de Jacky esst disons beaucoup plus
mieux.

Permettez moi de continuer à suivre vos intéressants projets.


--
albertri-at-videotron.ca.invalid
Publicité
Poster une réponse
Anonyme