Trouver la bonne date

D

Daniel

Guest
Salut oh grands maîtres de l'informatique
Voici un extrait de code qui me permet d'avoir un jour de semaine à l'exception du samedi et du dimanche, seulement si vous êtes en train de lire cela, c'est que ça ne va pas du tout pour moi :
Voici le code :
Sub data()

Dim nom As Date
dim x as string
Dim Compteur As Integer, Compteur2 As Integer

nom = DateValue(Now() + 1)
x = datevalue(nom), "dd_mmm")
For Compteur = 0 To 365
If Weekday(DateValue(nom) + Compteur) = 1 Then
Compteur2 = Compteur2 - 2
If Weekday(DateValue(nom) + Compteur) = 7 Then
Compteur2 = Compteur2 - 1
If Weekday(DateValue(nom) + Compteur) = 3 Then
Compteur2 = Compteur2 - 3
End If
End If
End If
MsgBox nom
Next
End Sub
Voici les conditions :
si la valeur du jour est le dimanche(1), alors, je voudrais qu'il me retire 2 jours pour être au vendredi
Si c'est le samedi, il me retire 1 jour pour être au vendredi
Enfin, si c'est le lundi, alors 3 jours de moins pour être au vendredi
A la fin du code, le msgbox me permet de voir ce qui s'affiche avant une expoitation dans un fichier de donnée, par conséquent, ça n'a pas de valeurs.
Je vous remercie
 
Y

yeahou

Guest
Bonjour Daniel, le forum

c'est normal que cela ne marche pas, ton code ne fait qu'incrémenter négativement compteur2. Ton msgbox, lui, t'affiche la valeur de nom définie au début puisqu'elle n'est pas modifiée.
cela sent le code récupéré et mal exploité (je crois d'ailleurs en reconnaitre une partie, si je ne m'abuse)

le but final, c'est quoi ?
que désire tu récupérer et à quelle fin?
une chaine texte, une valeur, le nombre de LAV?

A+
 
D

Daniel

Guest
Bonjour yeahou,

Le but est tout simplement de nommer des feuilles d'un fichier excel qui comportera tous les jours d'un mois au format ("dd_mmm") sans les samedis ni les dimanches mais en respectant ceci :
Nom de l'onglet doit être : jour-1
Pour les mois suivants, un autre fichier sera crée.
Voilà, le pourquoi du comment
Je te remercie par avance pour tes conseils et la version que tu pourras me donner.
A +
 
Y

yeahou

Guest
Re Bonjour

alors ce code devrait t'aller, comme tu as déclaré nom en date, tu n'as pas besoin de datevalue

A+

Sub data()

Dim nom As Date
Dim x As String
Dim Compteur As Integer

nom = Now() + 1
For Compteur = 0 To 365
Select Case Weekday(nom + Compteur)
Case 1
Case 2
x = Format(nom + (Compteur - 3), "dd_mmm")
MsgBox x
Case Is < 7
x = Format(nom + (Compteur - 1), "dd_mmm")
MsgBox x
Case Else
End Select
Next Compteur
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG