PB calendrier vba

downloads

XLDnaute Nouveau
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
 

fhoest

XLDnaute Accro
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+
 

JNP

XLDnaute Barbatruc
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 :p...
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 :D...
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 :confused:.
Bon courage :cool:
Ajout : Salut Fhoest
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
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
 

fhoest

XLDnaute Accro
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.
 
G

Guest

Guest
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:

ROGER2327

XLDnaute Barbatruc
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:

Cousinhub

XLDnaute Barbatruc
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
 

JNP

XLDnaute Barbatruc
Re : PB calendrier vba

Re :),
Que nenni :p...
Mon code n'était déjà pas "mon" code, vu que j'avais juste remis le code de Downloads dans l'ordre :D...
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 :eek:.
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 :rolleyes:...
Combien de fois l'approche des autres m'a-t-elle permise de progresser en changeant mon axe de réflexion :eek: ?
Bon WE :cool:
 

fhoest

XLDnaute Accro
Re : PB calendrier vba

:confused: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...
 

Discussions similaires

Réponses
21
Affichages
1 K
  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
342

Statistiques des forums

Discussions
312 492
Messages
2 088 942
Membres
103 989
dernier inscrit
jralonso