Ecrire des décalages de dates dans un tableau

studentjeje Messages postés 14 Date d'inscription vendredi 3 septembre 2004 Statut Membre Dernière intervention 5 janvier 2007 - 21 oct. 2004 à 13:14
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 22 oct. 2004 à 10:14
Bonjour,

1) Je souhaiterais savoir comment faire pour calculer des décalages de dates par rapport à la date du jour avec un décalage de un mois, trois mois six mois, neuf mois, un an, deux ans, ...etc jusqu'à 10 ans.

J'ai commencé à écrire qq chose mais le prgramme me retourne la valeur "0".

Je ne sais pas si je peux utiliser un compteur car les pas sont différents. Alors, si quelqu'un peut m'aider, merci beaucoup.

2) Je souhaiterais savoir comment je peux récupérer le résultat du calcul des variables déclarées pour d'autres calculs.

Voici le code:

Option Explicit

Dim Jour As String
Dim Mois1 As String
Dim Mois3 As String
Dim Mois6 As String
Dim Mois9 As String
Dim An1 As String
Dim An2 As String
Dim An3 As String
Dim An4 As String
Dim An5 As String
Dim An6 As String
Dim An7 As String
Dim An8 As String
Dim An9 As String
Dim An10 As String
Dim i As Integer

Private Type DatesT
Dates As String
Valeur As String
End Type

Dim Dates(1 To 15) As DatesT

Public Function CalculDates(Nom As String, Valeur As String, i As Integer)

For i = 1 To 15

Dates(i).Valeur = i + DateAdd("d",1,CDate(Date))

' Comment faire pour faire une boucle avec des pas différents ?

Next i

End Function

Private Sub Command1_Click()

Call AffichageDates

End Sub

Sub AffichageDates()

Dim Nom As String, Valeur As String, i As Integer

End Sub

Jeje

10 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 oct. 2004 à 13:32
salut,

et bien avec dateadd comme tu le fait je vois pas ton probleme...
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
studentjeje Messages postés 14 Date d'inscription vendredi 3 septembre 2004 Statut Membre Dernière intervention 5 janvier 2007
21 oct. 2004 à 13:53
Le probème est qu'il me renvoit la valeur "0". De plus, dans l'exemple, j'ai mis une boucle pour ajouter 1 Jour mais il me faudrait également des boucles pour ajouter des mois et des années selon les pas définis dans mon premier message.

Jeje
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 oct. 2004 à 15:07
Salut,

tu entends coi par "different pas definis"
Si tu pouvais me reexplique je pourrai t aider (desole) avec une ptite fonction
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
studentjeje Messages postés 14 Date d'inscription vendredi 3 septembre 2004 Statut Membre Dernière intervention 5 janvier 2007
21 oct. 2004 à 15:22
Ok.

Ce que je veux est d'ajouter à partir de la date du Jour un pas (c'est à dire un entier qui peut être soit le jour, soit le mois, soit l'année) pour avoir une nouvelle Date qui sera Jour + le pas ( par exemple 1jour)

Mon problème est donc que je veux ajouter à la variable Jour d'abord 1 Jour, puis 1 mois, puis 3 mois, 6 mois, 9 mois, 1 an, 2 ans, etc...10 ans.

Les résultats donnent des nouvelles dates que je souhaiterais variabiliser afin de les reprendre dans de nouveaux calculs.

Cordialement,

Jeje
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 oct. 2004 à 16:23
Salut,
ON y es presque.

Juste une derniere question pourcoi un type et pas un tableau de date directement et pourcoi 15
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
studentjeje Messages postés 14 Date d'inscription vendredi 3 septembre 2004 Statut Membre Dernière intervention 5 janvier 2007
21 oct. 2004 à 16:40
Il y a 15 valeurs à calculer.
Pour la première question : je me suis lancé dans le type mais j'ai peut être tord. C'est peut être ça qui coince. sais pas.

Jeje
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 oct. 2004 à 16:51
Re,

Avec un tableau de date c est peu etre mieux mais je sais pas ...

en tout cas si il y a quinze valeur, tu dois bien savoir quand ajouter des mois, des jours ou des annees,

ou alors fait le tout le temps en jours et essaie de voir si il n y pas un fonction qui pourrait relier la valeur de ta boucle avec la valeur d ecart a calculer. comme ca tu pourra faire un truc du style.

exemple avectableau de date
For i = 1 To 15

Dates(i) = DateAdd("d",i,Date)
' ou i * je ne sais quel coeeficient

' ou alors tu peux faire si i < tellevaleur ajourter des jours , mois

Next i


plus j ecris plus je me rends compte que je ne sais pas m expliquer ;)
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
21 oct. 2004 à 23:47
Le mieux c'est de ne pas faire de boucles

Dates(1).Valeur = DateAdd("d", 1, Date)
Dates(2).Valeur = DateAdd("m", 1, Date)
Dates(3).Valeur = DateAdd("m", 3, Date)
etc....
jusqu'à 15
0
studentjeje Messages postés 14 Date d'inscription vendredi 3 septembre 2004 Statut Membre Dernière intervention 5 janvier 2007
22 oct. 2004 à 08:20
C'est ce que j'avais fais au départ mais je me demandais s'il n'existait pas mieux.

Jeje
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
22 oct. 2004 à 10:14
Salut,

je recapitule :
- il y a 15 valeur : 1j, 1m, 3m, 6m, 9m, 1a, 2a, 3a, 4a, 5a, 6a, 7a, 8a, 9a, 10a

Essayons can meme une boucle (avec teste de la valeur i)
Dim i As Integer
Dim NumMois As Integer
NumMois = 1
For i = 1 To 15    If i 1 Then Dates(i) DateAdd("d", 1, Date)    If i 2 Then Dates(i) DateAdd("m", 1, Date)
    If (i >= 3 And i < 6) Then
        Dates(i) = DateAdd("m", 3 * NumMois, Date)
        NumMois = NumMois + 1
    End If    If i >6 Then Dates(i) DateAdd("yyyy", i - 5, Date)
Next


J sais pas trop si ca t avance mais bon
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
Rejoignez-nous