• Initiateur de la discussion Initiateur de la discussion downloads
  • 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 !

D

downloads

Guest
Bonjour !

J'ai un probleme que je n'arrive pas à resoudre toute seule.
J'ai un calendrier qui s'affiche à partir de la ligne C15 et qui s'ettend sur la ligne 15. J'ai une date de début de tache(ddd) une date de fin(ddf).
Je voudrai colorier les cases de la ligne suivante à partir de D16 lorsque ces dates sont comprises entre celles de début et de fin.

J'ai essayé le code suivant :

Cells(15, 3).Select
If ActiveCell.Value <= ddd Then

Do While ActiveCell.Value <= ddf
ActiveCell.Offset(1, 0).InteriorColor = 15
ActiveCell.Offset(0, 1).Select

Loop
End If

Mais ca ne marche pas et je ne vois vraiment pas pourquoi.
Pourriez vous m'aider ?

Merci bcp
 
Re : PB calendrier vba

Bonjour,
je n'ai pas le reste du code mais tu peux essayer .Activate a la place de . select partout
et dans la boucle tu fais un offset mais tu n'active jamais une autre cell
du genre:
Code:
activecell.offset(1,0).activate
A+
 
Re : PB calendrier vba

Bonjour Downloads 🙂,
Cells(15, 3).Select
If ActiveCell.Value <= ddd Then
Do While ActiveCell.Value <= ddf
ActiveCell.Offset(1, 0).InteriorColor = 15
ActiveCell.Offset(0, 1).Select
Loop
End If
Tu t'es un peu pris les pieds dans le tapis 😛...
La boucle est extérieure, et doit s'arrêter si la cellule active est vide, et à l'intérieur, tu fais le test pour savoir si tu colories 😀...
Code:
Cells(15, 3).Select
Do While ActiveCell.Value <> ""
If ActiveCell.Value <= ddd Then
ActiveCell.Offset(1, 0).InteriorColor = 15
End If
ActiveCell.Offset(0, 1).Select
Loop
Mais je pense en plus qu'il y a une erreur de raisonnement, comparer avec la date d'aujourd'hui paraitrait plus logique que par rapport à une date de début 😕.
Bon courage 😎
Ajout : Salut Fhoest
 
Dernière édition:
Re : PB calendrier vba

Re-,

essaie ce code :

Code:
Sub coloriage()
Dim C As Range, D As Range
Set C = Rows(15).Find([G12])
Set D = Rows(15).Find([G13])
Rows(15).Interior.ColorIndex = xlNone
C.Resize(1, D.Column - C.Column + 1).Interior.ColorIndex = 15
End Sub

Bonne soirée
 
Re : PB calendrier vba

Ben!! je repete: avec le code de Jnp qui est je pense aussi bien que celui de bhbh,
Code:
Cells(15, 3).Select
Do While ActiveCell.Value <> "" 
'ajouter
[COLOR="Red"]If ActiveCell.Value = [g13] Then exit do[/COLOR]
If ActiveCell.Value <= ddd Then
ActiveCell.Offset(1, 0).InteriorColor = 15
End If
ActiveCell.Offset(0, 1).Select
Loop
A bientôt.
 
Re : PB calendrier vba

bonjour le Fil,

Si j'ai tout compris:

Code:
[C16].Resize(, Int(Ddf - Ddd) + 1).Interior.ColorIndex = 15

Par MEFC c'est pas mal non plus.

A+
 
Dernière modification par un modérateur:
Re : PB calendrier vba

Bonjour à tous
Des variantes :
Code:
[COLOR="DarkSlateGray"][B]Sub tata()
Dim ddd#, ddf#, l&
Dim d&, f&, c&, r&
   l = 1 [COLOR="SeaGreen"]'décalage de ligne à colorier[/COLOR]
   ddd = [G12].Value2 [COLOR="SeaGreen"]'date de début[/COLOR]
   ddf = [G13].Value2 [COLOR="SeaGreen"]'date de fin[/COLOR]
   With [C15] [COLOR="SeaGreen"]'début de la plage de référence[/COLOR]
      r = .Row
      c = .Column
      f = Cells(r, Columns.Count).End(xlToLeft).Column
      .Resize(1, f - c + 1).Offset(l, 0).Interior.ColorIndex = xlNone
      Do While Cells(r, c).Value2 < ddd And c <= f
         c = c + 1
      Loop
      Do While Cells(r, c + d).Value2 <= ddf And c + d <= f
         d = d + 1
      Loop
      If d Then .Offset(l, c - .Column).Resize(1, d).Interior.ColorIndex = 3
   End With
End Sub

Sub toto()
Dim ddd#, ddf#, l&
Dim dd As Range, oCel As Range
   l = 1 [COLOR="SeaGreen"]'décalage de ligne à colorier[/COLOR]
   ddd = [G12].Value2 [COLOR="SeaGreen"]'date de début[/COLOR]
   ddf = [G13].Value2 [COLOR="SeaGreen"]'date de fin[/COLOR]
   With [C15] [COLOR="SeaGreen"]'début de la plage de référence[/COLOR]
      Set dd = Range(.Cells, Cells(.Row, Columns.Count).End(xlToLeft))
      dd.Offset(l, 0).Interior.ColorIndex = xlNone
   End With
   For Each oCel In dd.Cells
      If ddd <= oCel.Value2 And oCel.Value2 <= ddf Then
         oCel.Offset(l, 0).Interior.ColorIndex = 3
      End If
   Next
End Sub[/B][/COLOR]
ROGER2327
#3956


Mercredi 11 Tatane 137 (Saintes Canicule et Canule, jouvencelles, SQ)
6 Thermidor An CCXVIII
2010-W29-6T00:52:18Z
 
Dernière édition:
Re : PB calendrier vba

Bonjour,

Personnellement, je n'ai jamais apporté un commentaire sur quelque soit le code fourni, mais surtout, jamais jugé de la pertinence de tel ou tel code...

Fhoest, tu te permets d'affirmer :

Ben!! je repete: avec le code de Jnp qui est je pense aussi bien que celui de bhbh,

Ceci ne regarde que toi....

Si tu ne comprends pas mon code, demande....

Hasco a fourni un condensé de ce code, mais l'idée était là....

La différence entre son code, et le mien, c'est juste que si, dans les dates, il manque les jours non-ouvrables, et/ou fériés, la plage coloriée ne prendra pas la même dimension...

C'est pas un match, parfois, on fait un jeu, en se comparant en 1/1000 ème de secondes, mais au vu de ton code, il va falloir, tout comme nous l'avons fait, "travailler" un peu....

So, sans aucune méchanceté, ni quoi que ce soit, tes "remarques", très peu pour moi....

Bonne continuation
 
Re : PB calendrier vba

Re 🙂,
Que nenni 😛...
Mon code n'était déjà pas "mon" code, vu que j'avais juste remis le code de Downloads dans l'ordre 😀...
Ensuite, vu qu'il n'y a jamais eu de fichier test, on est dans le noir complet pour savoir si nos propositions sont au moins adaptées 😱.
Enfin, comme dit Bh², ce n'est pas une compétition (remarque que l'on se faisait ICI hier...), mais un forum d'entraide, où, le plus important est d'abord d'apporter une réponse au demandeur 😉.
Après, c'est la diversité des réponses qui apportent sa richesse au forum, il suffit de regarder certains fils, entre plusieurs approches "formule" et plusieurs "VBA", le demandeur n'a qu'à choisir 🙄...
Combien de fois l'approche des autres m'a-t-elle permise de progresser en changeant mon axe de réflexion 😱 ?
Bon WE 😎
 
Re : PB calendrier vba

😕Bonjour,
BhBh ,excuse moi de t'avoir offusquer, le Ben!! chez moi (je suis du nord) est un début d'expression qui n'est pas bien méchant ,de plus j'ai mis dans cette phrase la référence du code de Jnp (qui n'est pas le siens nous dit il)car je penser que download n'avait pas saisi ou mettre le code proposer juste devant le ben!!, et en plus je me suis peut être mal exprimer en disant "aussi bien que le code de BhBh" (justement ces quelques mots pour éviter ce genre de litige)
Je ne voulais en aucun cas juger des capacités de l'un et de l'autre (nous ne sommes pas la pour ça ) et (j'ai bien saisi que c'est un forum d'entraide et pas une compétition)
encore désolé d'avoir provoquer ce genre de problème,tout en essayant d'aider download🙂
Au plaisir de continuer dans la bonne humeur et surtout bonne ambiance...
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
52
Affichages
3 K
Réponses
16
Affichages
619
Réponses
4
Affichages
586
Réponses
2
Affichages
556
W
Réponses
2
Affichages
411
Retour