Ceci est mon premier poste sur ce forum
Je débute avec VBA et en ce moment j'essaye d'automatiser un planning avec une date de début et date de fin(j'utilise calendar dans un userform pour avoir les dates)
mais voila j'ai un problème avec ma funtion "datesuivant" et la boucle "for" pour ajouter les jours dans mon fichier excel.
funtion JourSuivant:
Code:
Function JourSuivant(Unedate As Date) As Variant
'Application.Volatile
Dim DD As Variant
DD = Unedate + 1
JourSuivant = Format(DD, "dd/mm/YYYY")
End Function
et ma boucle for:
Code:
For compteur = 1 To DateDiff("d", datedeb, datefin)
Datesuivant = JourSuivant(datedeb)
'MsgBox Datesuivant
ActiveCell.Offset(0, compteur) = Format(Datesuivant, "ddd")
Next compteur
le problème c'est qu'il fait une fois le jour suivant, donc sur l'affichage je me retrouve toujours avec des mardi(enfin si datedeb=lundi)
En gros sur ma ligne j'aurai un lundi puis que des Mardi
Bref je demande votre aide pour me dire ou est ce que je me suis trompé.
Bonjour Ridame et bienvenu,
alors c'est normal dans ta boucle tu as mis ta fonction avec en référence ta date de début donc tu as toujours ta date de début +1 !!!
il faut mettre ta cellule en ref
Mon gros problème c'est que "Datesuivant = JourSuivant(datedeb)" est appellé qu'une seul fois.
Donc la date avance juste d'un jour, et basta.
Edite:
Salut Paritec
Merci, car ton raisonnement est correcte.
je vais vérifier
cordialement
ReEdite:
Re Paritec
je suis vraiment débile, j'avais même déclaré au debut de mon Sub Datesuivant = datedeb.
merci d'avoir vu cette grosse bêtise de ma part.