OVH Cloud OVH Cloud

VB5 et calcul de date !

11 réponses
Avatar
Claude
Bonjour à tous !

J`utilise VB5 et je dois me faire une application qui calcule le nombre de
jour entre 2 dates.
J`avais penser utiliser l`outil Calendar avec sa calendar.value mais le
résultat est une chaine de caractere. Comment faire pour faire une opération
mathématique sur une chaine de caractere? J`ai réussi avec Excell mais
j`aimerais le faire avec VB5.

Merci

Claude

10 réponses

1 2
Avatar
Jacques93
Bonjour Claude,
Claude a écrit :
Bonjour à tous !

J`utilise VB5 et je dois me faire une application qui calcule le nombre de
jour entre 2 dates.
J`avais penser utiliser l`outil Calendar avec sa calendar.value mais le
résultat est une chaine de caractere. Comment faire pour faire une opération
mathématique sur une chaine de caractere? J`ai réussi avec Excell mais
j`aimerais le faire avec VB5.




Si la fonction DateDiff est présente sous VB5 (OK sous VB6) :

MsgBox DateDiff("d", d1, d2)

Sinon

MsgBox d2 - d1

Avec d2 >= d1

En fait c'est comme sous Excel

--
Cordialement,

Jacques.
Avatar
X
Bonjour,

Je viens de regarder, sous vb6 calendar1.value = jj/mm/aaaa

Donc si en vb5 il te sort un nombre, je présume que c'est un nombre sous la
forme:
jours_depuis_le,secondes

La partie entière c'est le nombre de jours depuis un date fixe (voir doc),
et le reste c'est le nombre de secondes de cette date, par exemple une date
x à 12h = 1,5... à 18h = 1,75
Donc si la date de départ (pour l'exemple est le 1/1/1900), au 1/1/1901 tu
dois avoir 366,0 (il n'y avait pas de bissextile en 1900)..

Après, quand tu auras la date de départ, indiquée dans la doc, tu peux la
recomposer... tu peux aussi faire bouger la date, soit::
dim ladate as date
ladate = date_de_départ
ladate = ladate + Int(calendar1.value)
Et tu auras la date de value...
etc, sachant que l'on peut faire des + et des moins avec les dates, et aussi
entre elles et des nombres entiers (pris pour des jours)...

Sinon, il y a aussi des fonctions qui calculent les différence, mais tu
voulais je crois un calcul manuel...

------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Claude" a écrit dans le message de news:
%
Bonjour à tous !

J`utilise VB5 et je dois me faire une application qui calcule le nombre de
jour entre 2 dates.
J`avais penser utiliser l`outil Calendar avec sa calendar.value mais le
résultat est une chaine de caractere. Comment faire pour faire une
opération
mathématique sur une chaine de caractere? J`ai réussi avec Excell mais
j`aimerais le faire avec VB5.

Merci

Claude




Avatar
Claude
Merci à tous !

Claude

"X" wrote in message news:
| Bonjour,
|
| Je viens de regarder, sous vb6 calendar1.value = jj/mm/aaaa
|
| Donc si en vb5 il te sort un nombre, je présume que c'est un nombre sous
la
| forme:
| jours_depuis_le,secondes
|
| La partie entière c'est le nombre de jours depuis un date fixe (voir doc),
| et le reste c'est le nombre de secondes de cette date, par exemple une
date
| x à 12h = 1,5... à 18h = 1,75
| Donc si la date de départ (pour l'exemple est le 1/1/1900), au 1/1/1901 tu
| dois avoir 366,0 (il n'y avait pas de bissextile en 1900)..
|
| Après, quand tu auras la date de départ, indiquée dans la doc, tu peux la
| recomposer... tu peux aussi faire bouger la date, soit::
| dim ladate as date
| ladate = date_de_départ
| ladate = ladate + Int(calendar1.value)
| Et tu auras la date de value...
| etc, sachant que l'on peut faire des + et des moins avec les dates, et
aussi
| entre elles et des nombres entiers (pris pour des jours)...
|
| Sinon, il y a aussi des fonctions qui calculent les différence, mais tu
| voulais je crois un calcul manuel...
|
| ------
| Site logiciels
| http://irolog.free.fr
| Mail
| http://irolog.free.fr/ecrire/index.htm
| Site perso
| http://irolog.free.fr/joe/index.htm
| Principe d'utilisation des news Groups
| http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
| ------------------------------------------------------------------------------------
| "Claude" a écrit dans le message de news:
| %
| > Bonjour à tous !
| >
| > J`utilise VB5 et je dois me faire une application qui calcule le nombre
de
| > jour entre 2 dates.
| > J`avais penser utiliser l`outil Calendar avec sa calendar.value mais le
| > résultat est une chaine de caractere. Comment faire pour faire une
| > opération
| > mathématique sur une chaine de caractere? J`ai réussi avec Excell mais
| > j`aimerais le faire avec VB5.
| >
| > Merci
| >
| > Claude
| >
| >
|
|
Avatar
Claude
Bonjour Jacques!

J`utilise la librairie Microsoft Calendar components V 10.0 pour aller
choisir les dates.
La propriétés calendar1.value est-elle numerique ou bien chaine de
caracteres? Où puis-je trouver ce renseignement !
VB5 contient la fonction Datediff mais le résultat est toujours 0, c`est
pourquoi je me demande si calendar1.value est chaine. Si oui, comment
puis-je la convertir en numérique afin d`y effectuer l`opération
mathematique et obtenir ainsi le nombre de jour entre mes 2 dates!

merci infiniment.....

Claude

"Jacques93" wrote in message
news:
| Bonjour Claude,
| Claude a écrit :
| > Bonjour à tous !
| >
| > J`utilise VB5 et je dois me faire une application qui calcule le nombre
de
| > jour entre 2 dates.
| > J`avais penser utiliser l`outil Calendar avec sa calendar.value mais le
| > résultat est une chaine de caractere. Comment faire pour faire une
opération
| > mathématique sur une chaine de caractere? J`ai réussi avec Excell mais
| > j`aimerais le faire avec VB5.
| >
|
| Si la fonction DateDiff est présente sous VB5 (OK sous VB6) :
|
| MsgBox DateDiff("d", d1, d2)
|
| Sinon
|
| MsgBox d2 - d1
|
| Avec d2 >= d1
|
| En fait c'est comme sous Excel
|
| --
| Cordialement,
|
| Jacques.
Avatar
X
Salut,

La propriété est numérique ou date (texte date), selon ce que tu veux,
voici, j'ai testé:

Si ton code (dans un bouton 1) est ça:
Sub Command1_Click()
Dim ladate As Double
Dim date_a As Date
Dim date_b As Date
Text1 = CDbl(Calendar1.Value) & vbCrLf ' = 1er/01/1900
date_a = "21/03/2006"
Text1 = Text1 & date_a & vbCrLf
Text1 = Text1 & CDbl(date_a) & vbCrLf
date_a = CDate(38799)
Text1 = Text1 & date_a & vbCrLf
date_a = "21/03/2006"
date_b = "23/03/2006"
ladate = date_b - date_a
Text1 = Text1 & ladate & vbCrLf
End Sub


Ça te donne en mettant le calendar au 1/1/1900
2
21/03/2006
38797
23/03/2006
2

En conséquence (tu as vu ci-dessus comment on passait du numérique à la
date, et réciproquement):
- En numérique, calendar commence au 31/12/1899 = jour 1
- Le 21/03/2006 est le jour 38797
- Le 23/03/2006 est le jour 38799
donc 38799-39797 = 2, il y a 2 jours entre le 21 et le 23/3/2006


En conclusions:

- Pour passer d'une date texte à une date numérique:
Dim ladate As Double
Dim date_a As Date
ladate = CDbl(Calendar1.Value)

- Pour passer d'une date numérique à une date texte:
Dim ladate As Double
Dim date_a As Date
date_a = CDate(38799)

- pour calculer l'écart entre 2 dates texte
dim numérique as double
dim date1 as date
dim date2 as date
date1="21/03/2006"
date2="23/03/2006"
numerique = date2 - date1 (= 2)

Et si tu représente une date avec une heure, ce sera alors une décimal,
comme déjà épondu:
nombre de jours depuis le 31/12/1899 ,virgule, nombre de secondes
j,s

Si tu utilises les fonctions indiquées par Jacques ça donnera la même chose,
à toi de voir si tu veux faire du calcul ou utiliser les fonctions
prédéfinies...

Est-ce clair, si c'est sombre, envoie, je te fais !

------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Claude" a écrit dans le message de news:

Bonjour Jacques!

J`utilise la librairie Microsoft Calendar components V 10.0 pour aller
choisir les dates.
La propriétés calendar1.value est-elle numerique ou bien chaine de
caracteres? Où puis-je trouver ce renseignement !
VB5 contient la fonction Datediff mais le résultat est toujours 0, c`est
pourquoi je me demande si calendar1.value est chaine. Si oui, comment
puis-je la convertir en numérique afin d`y effectuer l`opération
mathematique et obtenir ainsi le nombre de jour entre mes 2 dates!

merci infiniment.....

Claude

"Jacques93" wrote in message
news:
| Bonjour Claude,
| Claude a écrit :
| > Bonjour à tous !
| >
| > J`utilise VB5 et je dois me faire une application qui calcule le
nombre
de
| > jour entre 2 dates.
| > J`avais penser utiliser l`outil Calendar avec sa calendar.value mais
le
| > résultat est une chaine de caractere. Comment faire pour faire une
opération
| > mathématique sur une chaine de caractere? J`ai réussi avec Excell mais
| > j`aimerais le faire avec VB5.
| >
|
| Si la fonction DateDiff est présente sous VB5 (OK sous VB6) :
|
| MsgBox DateDiff("d", d1, d2)
|
| Sinon
|
| MsgBox d2 - d1
|
| Avec d2 >= d1
|
| En fait c'est comme sous Excel
|
| --
| Cordialement,
|
| Jacques.




Avatar
Claude
Merci pour tes explications mais elles sont un peu sombres pour moi.
Voici l`idée que j`aimerais faire...

L`utilisateur clique sur une premiere date sur le calendrier, puis sur une
deuxieme.
Ensuite, il ne reste qu`à cliquer sur un bouton pour savoir la difference de
jour entre ces 2 dates !
C`est aussi simple que cela !
Tu peux m`aider?

En te remerciant d`avance

Claude

"X" wrote in message news:
| Salut,
|
| La propriété est numérique ou date (texte date), selon ce que tu veux,
| voici, j'ai testé:
|
| Si ton code (dans un bouton 1) est ça:
| Sub Command1_Click()
| Dim ladate As Double
| Dim date_a As Date
| Dim date_b As Date
| Text1 = CDbl(Calendar1.Value) & vbCrLf ' = 1er/01/1900
| date_a = "21/03/2006"
| Text1 = Text1 & date_a & vbCrLf
| Text1 = Text1 & CDbl(date_a) & vbCrLf
| date_a = CDate(38799)
| Text1 = Text1 & date_a & vbCrLf
| date_a = "21/03/2006"
| date_b = "23/03/2006"
| ladate = date_b - date_a
| Text1 = Text1 & ladate & vbCrLf
| End Sub
|
|
| Ça te donne en mettant le calendar au 1/1/1900
| 2
| 21/03/2006
| 38797
| 23/03/2006
| 2
|
| En conséquence (tu as vu ci-dessus comment on passait du numérique à la
| date, et réciproquement):
| - En numérique, calendar commence au 31/12/1899 = jour 1
| - Le 21/03/2006 est le jour 38797
| - Le 23/03/2006 est le jour 38799
| donc 38799-39797 = 2, il y a 2 jours entre le 21 et le 23/3/2006
|
|
| En conclusions:
|
| - Pour passer d'une date texte à une date numérique:
| Dim ladate As Double
| Dim date_a As Date
| ladate = CDbl(Calendar1.Value)
|
| - Pour passer d'une date numérique à une date texte:
| Dim ladate As Double
| Dim date_a As Date
| date_a = CDate(38799)
|
| - pour calculer l'écart entre 2 dates texte
| dim numérique as double
| dim date1 as date
| dim date2 as date
| date1="21/03/2006"
| date2="23/03/2006"
| numerique = date2 - date1 (= 2)
|
| Et si tu représente une date avec une heure, ce sera alors une décimal,
| comme déjà épondu:
| nombre de jours depuis le 31/12/1899 ,virgule, nombre de secondes
| j,s
|
| Si tu utilises les fonctions indiquées par Jacques ça donnera la même
chose,
| à toi de voir si tu veux faire du calcul ou utiliser les fonctions
| prédéfinies...
|
| Est-ce clair, si c'est sombre, envoie, je te fais !
|
| ------
| Site logiciels
| http://irolog.free.fr
| Mail
| http://irolog.free.fr/ecrire/index.htm
| Site perso
| http://irolog.free.fr/joe/index.htm
| Principe d'utilisation des news Groups
| http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
| ------------------------------------------------------------------------------------
| "Claude" a écrit dans le message de news:
|
| > Bonjour Jacques!
| >
| > J`utilise la librairie Microsoft Calendar components V 10.0 pour aller
| > choisir les dates.
| > La propriétés calendar1.value est-elle numerique ou bien chaine de
| > caracteres? Où puis-je trouver ce renseignement !
| > VB5 contient la fonction Datediff mais le résultat est toujours 0, c`est
| > pourquoi je me demande si calendar1.value est chaine. Si oui, comment
| > puis-je la convertir en numérique afin d`y effectuer l`opération
| > mathematique et obtenir ainsi le nombre de jour entre mes 2 dates!
| >
| > merci infiniment.....
| >
| > Claude
| >
| > "Jacques93" wrote in message
| > news:
| > | Bonjour Claude,
| > | Claude a écrit :
| > | > Bonjour à tous !
| > | >
| > | > J`utilise VB5 et je dois me faire une application qui calcule le
| > nombre
| > de
| > | > jour entre 2 dates.
| > | > J`avais penser utiliser l`outil Calendar avec sa calendar.value mais
| > le
| > | > résultat est une chaine de caractere. Comment faire pour faire une
| > opération
| > | > mathématique sur une chaine de caractere? J`ai réussi avec Excell
mais
| > | > j`aimerais le faire avec VB5.
| > | >
| > |
| > | Si la fonction DateDiff est présente sous VB5 (OK sous VB6) :
| > |
| > | MsgBox DateDiff("d", d1, d2)
| > |
| > | Sinon
| > |
| > | MsgBox d2 - d1
| > |
| > | Avec d2 >= d1
| > |
| > | En fait c'est comme sous Excel
| > |
| > | --
| > | Cordialement,
| > |
| > | Jacques.
| >
| >
|
|
Avatar
X
Salut, ouais, je te ais ça immédiatement, serviteur :o)

------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Claude" a écrit dans le message de news:

Merci pour tes explications mais elles sont un peu sombres pour moi.
Voici l`idée que j`aimerais faire...

L`utilisateur clique sur une premiere date sur le calendrier, puis sur une
deuxieme.
Ensuite, il ne reste qu`à cliquer sur un bouton pour savoir la difference
de
jour entre ces 2 dates !
C`est aussi simple que cela !
Tu peux m`aider?

En te remerciant d`avance

Claude

"X" wrote in message news:
| Salut,
|
| La propriété est numérique ou date (texte date), selon ce que tu
veux,
| voici, j'ai testé:
|
| Si ton code (dans un bouton 1) est ça:
| Sub Command1_Click()
| Dim ladate As Double
| Dim date_a As Date
| Dim date_b As Date
| Text1 = CDbl(Calendar1.Value) & vbCrLf ' = 1er/01/1900
| date_a = "21/03/2006"
| Text1 = Text1 & date_a & vbCrLf
| Text1 = Text1 & CDbl(date_a) & vbCrLf
| date_a = CDate(38799)
| Text1 = Text1 & date_a & vbCrLf
| date_a = "21/03/2006"
| date_b = "23/03/2006"
| ladate = date_b - date_a
| Text1 = Text1 & ladate & vbCrLf
| End Sub
|
|
| Ça te donne en mettant le calendar au 1/1/1900
| 2
| 21/03/2006
| 38797
| 23/03/2006
| 2
|
| En conséquence (tu as vu ci-dessus comment on passait du numérique à la
| date, et réciproquement):
| - En numérique, calendar commence au 31/12/1899 = jour 1
| - Le 21/03/2006 est le jour 38797
| - Le 23/03/2006 est le jour 38799
| donc 38799-39797 = 2, il y a 2 jours entre le 21 et le 23/3/2006
|
|
| En conclusions:
|
| - Pour passer d'une date texte à une date numérique:
| Dim ladate As Double
| Dim date_a As Date
| ladate = CDbl(Calendar1.Value)
|
| - Pour passer d'une date numérique à une date texte:
| Dim ladate As Double
| Dim date_a As Date
| date_a = CDate(38799)
|
| - pour calculer l'écart entre 2 dates texte
| dim numérique as double
| dim date1 as date
| dim date2 as date
| date1="21/03/2006"
| date2="23/03/2006"
| numerique = date2 - date1 (= 2)
|
| Et si tu représente une date avec une heure, ce sera alors une décimal,
| comme déjà épondu:
| nombre de jours depuis le 31/12/1899 ,virgule, nombre de secondes
| j,s
|
| Si tu utilises les fonctions indiquées par Jacques ça donnera la même
chose,
| à toi de voir si tu veux faire du calcul ou utiliser les fonctions
| prédéfinies...
|
| Est-ce clair, si c'est sombre, envoie, je te fais !
|
| ------
| Site logiciels
| http://irolog.free.fr
| Mail
| http://irolog.free.fr/ecrire/index.htm
| Site perso
| http://irolog.free.fr/joe/index.htm
| Principe d'utilisation des news Groups
| http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
| ------------------------------------------------------------------------------------
| "Claude" a écrit dans le message de news:
|
| > Bonjour Jacques!
| >
| > J`utilise la librairie Microsoft Calendar components V 10.0 pour aller
| > choisir les dates.
| > La propriétés calendar1.value est-elle numerique ou bien chaine de
| > caracteres? Où puis-je trouver ce renseignement !
| > VB5 contient la fonction Datediff mais le résultat est toujours 0,
c`est
| > pourquoi je me demande si calendar1.value est chaine. Si oui, comment
| > puis-je la convertir en numérique afin d`y effectuer l`opération
| > mathematique et obtenir ainsi le nombre de jour entre mes 2 dates!
| >
| > merci infiniment.....
| >
| > Claude
| >
| > "Jacques93" wrote in message
| > news:
| > | Bonjour Claude,
| > | Claude a écrit :
| > | > Bonjour à tous !
| > | >
| > | > J`utilise VB5 et je dois me faire une application qui calcule le
| > nombre
| > de
| > | > jour entre 2 dates.
| > | > J`avais penser utiliser l`outil Calendar avec sa calendar.value
mais
| > le
| > | > résultat est une chaine de caractere. Comment faire pour faire une
| > opération
| > | > mathématique sur une chaine de caractere? J`ai réussi avec Excell
mais
| > | > j`aimerais le faire avec VB5.
| > | >
| > |
| > | Si la fonction DateDiff est présente sous VB5 (OK sous VB6) :
| > |
| > | MsgBox DateDiff("d", d1, d2)
| > |
| > | Sinon
| > |
| > | MsgBox d2 - d1
| > |
| > | Avec d2 >= d1
| > |
| > | En fait c'est comme sous Excel
| > |
| > | --
| > | Cordialement,
| > |
| > | Jacques.
| >
| >
|
|




Avatar
Claude Gagné
2 millions de fois merci !

Claude

"X" a écrit dans le message de
news:
Salut,

En fait je n'ai pas mis de Calendar dans l'exemple, mais il te sera
facile de transposer, j'ai fait un choix par combo, car ça risquait de ne
pas marcher, nous n'avons pas la même version de VB ni la même version du
calendar, en plus ça évite un ocx de plus, et parfois la mise à jour de sa
dépendance à la main...
Il y a 2 choix, l'un avec combo à date totale, l'autre plus souple avec 3
combos (jj + mm + aaaa)...
A toi de voir si tu veux vraiment un calendar, ou ce qui t'es proposé te
suffit :o)
Voici le code, les fichiers sources sont joints, comme les objets
(justement) sont les mêmes, ça ne devrait pas trop poser de problèmes pour
faire du copier/coller, voire à lancer directement en vb5...
---------------------

' <> entre 2 dates : form1 : 1.0 : 22/03/06
'
' 24 OBJET A INCORPORER sur form1
' - 4 comboBox : combo1 + combo2 + combo3 + combo4
' - 6 labels : label1 + label2 + label3 + label4 + label5 + label6
' - 4 optionBoutons : option1 + option2 + option3 + option4
' - 2 textBox : text1 + text2
' - 6 boutons : command1 + command2 + command3 + command4 + command5 +
command6
' - 2 frames : frame1 + frame 2
'
' NOTE
'si utilisation de Calendar, remplacer la date obtenue par les combo
' comboX.text ou ce qui en découle, par calendarX.value
'
Option Explicit
Dim date_jour As Long
'
Sub Form_Load() ' chargement
Dim ladate As Date
Dim i As Long
'
Combo1.Clear ' mettre combo1.style = 2 POSSIBILITE 1
ladate = "01/01/1970" ' date inférieure
For i = 0 To 20000 ' date de fin = date de départ + 20.000 jours
Combo1.AddItem ladate ' met date dans combo
ladate = ladate + 1 ' date ++
If Date = ladate Then date_jour = i + 1 ' date du jour
Next i
Combo1.ListIndex = date_jour ' positionne date du jour
'
Combo2.Clear ' mettre les 3 combos.style = 2 POSSIBILITE 2
Combo3.Clear
Combo4.Clear
For i = 1 To 31
Combo2.AddItem Format(i, "00")
If i < 13 Then Combo3.AddItem Format(i, "00")
Next i
'
For i = 1900 To 2099
Combo4.AddItem i
Next i
'
Combo2.ListIndex = Day(Date) - 1 ' positionne date du jour
Combo3.ListIndex = Month(Date) - 1
Combo4.ListIndex = Year(Date) - 1900
'
Option1.Value = True ' POSSIBILITES 1 + 2
Option3.Value = True
Label2.Caption = ""
Label3.Caption = ""
Label5.Caption = ""
Label6.Caption = ""
Text1 = ""
Text2 = ""
End Sub

Sub Command1_Click() 'validation de la date POSSIBILITE 1
If Option1.Value = True Then Label2.Caption = Combo1.Text
If Option1.Value = False Then Label3.Caption = Combo1.Text
End Sub

Sub Command3_Click() 'date du jour POSSIBILITE 1
Combo1.ListIndex = date_jour
End Sub

Sub Command2_Click() 'calcule la différence POSSIBILITE 1
Dim date1 As Date
Dim date2 As Date
'
If Label2.Caption = "" Or Label3.Caption = "" Then
MsgBox "Vous devez choisir 2 dates, remédier ", vbExclamation
Exit Sub
End If
'
date1 = Label2.Caption
date2 = Label3.Caption
If date1 > date2 Then
MsgBox "La 1ere date doit être = ou < à la 2eme date, remédier ",
vbExclamation
Exit Sub
End If
'
Text1 = Format(date2 - date1, "## ##0")
End Sub

Sub Command4_Click() 'validation de la date POSSIBILITE 2
Dim verif_date As Date
'
If Option3.Value = True Then
Label5.Caption = Combo2.Text & "/" & Combo3.Text & "/" & Combo4.Text
On Error GoTo erreur
verif_date = Label5.Caption
End If
'
If Option3.Value = False Then
Label6.Caption = Combo2.Text & "/" & Combo3.Text & "/" & Combo4.Text
On Error GoTo erreur
verif_date = Label6.Caption
End If
Exit Sub
'
erreur:
On Error Resume Next
MsgBox "Cette date n'existe pas, remédier ", vbExclamation
End Sub

Sub Command6_Click() 'date du jour POSSIBILITE 2
Dim jour As Date
Combo2.ListIndex = Day(Date) - 1
Combo3.ListIndex = Month(Date) - 1
Combo4.ListIndex = Year(Date) - 1900
End Sub

Sub Command5_Click() 'calcule la défférence POSSIBILITE 2
Dim date1 As Date
Dim date2 As Date
'
If Label5.Caption = "" Or Label6.Caption = "" Then
MsgBox "Vous devez choisir 2 dates, remédier ", vbExclamation
Exit Sub
End If
'
date1 = Label5.Caption
date2 = Label6.Caption
If date1 > date2 Then
MsgBox "La 1ere date doit être = ou < à la 2eme date, remédier ",
vbExclamation
Exit Sub
End If
'
Text2 = Format(date2 - date1, "## ##0")
End Sub
------
fin de code
------

Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------


----------
"Claude" a écrit dans le message de news:

> Merci pour tes explications mais elles sont un peu sombres pour moi.
> Voici l`idée que j`aimerais faire...
>
> L`utilisateur clique sur une premiere date sur le calendrier, puis sur


une
> deuxieme.
> Ensuite, il ne reste qu`à cliquer sur un bouton pour savoir la


difference
> de
> jour entre ces 2 dates !
> C`est aussi simple que cela !
> Tu peux m`aider?
>
> En te remerciant d`avance
>
> Claude
>
> "X" wrote in message


news:
> | Salut,
> |
> | La propriété est numérique ou date (texte date), selon ce que tu
> veux,
> | voici, j'ai testé:
> |
> | Si ton code (dans un bouton 1) est ça:
> | Sub Command1_Click()
> | Dim ladate As Double
> | Dim date_a As Date
> | Dim date_b As Date
> | Text1 = CDbl(Calendar1.Value) & vbCrLf ' = 1er/01/1900
> | date_a = "21/03/2006"
> | Text1 = Text1 & date_a & vbCrLf
> | Text1 = Text1 & CDbl(date_a) & vbCrLf
> | date_a = CDate(38799)
> | Text1 = Text1 & date_a & vbCrLf
> | date_a = "21/03/2006"
> | date_b = "23/03/2006"
> | ladate = date_b - date_a
> | Text1 = Text1 & ladate & vbCrLf
> | End Sub
> |
> |
> | Ça te donne en mettant le calendar au 1/1/1900
> | 2
> | 21/03/2006
> | 38797
> | 23/03/2006
> | 2
> |
> | En conséquence (tu as vu ci-dessus comment on passait du numérique à


la
> | date, et réciproquement):
> | - En numérique, calendar commence au 31/12/1899 = jour 1
> | - Le 21/03/2006 est le jour 38797
> | - Le 23/03/2006 est le jour 38799
> | donc 38799-39797 = 2, il y a 2 jours entre le 21 et le 23/3/2006
> |
> |
> | En conclusions:
> |
> | - Pour passer d'une date texte à une date numérique:
> | Dim ladate As Double
> | Dim date_a As Date
> | ladate = CDbl(Calendar1.Value)
> |
> | - Pour passer d'une date numérique à une date texte:
> | Dim ladate As Double
> | Dim date_a As Date
> | date_a = CDate(38799)
> |
> | - pour calculer l'écart entre 2 dates texte
> | dim numérique as double
> | dim date1 as date
> | dim date2 as date
> | date1="21/03/2006"
> | date2="23/03/2006"
> | numerique = date2 - date1 (= 2)
> |
> | Et si tu représente une date avec une heure, ce sera alors une


décimal,
> | comme déjà épondu:
> | nombre de jours depuis le 31/12/1899 ,virgule, nombre de secondes
> | j,s
> |
> | Si tu utilises les fonctions indiquées par Jacques ça donnera la même
> chose,
> | à toi de voir si tu veux faire du calcul ou utiliser les fonctions
> | prédéfinies...
> |
> | Est-ce clair, si c'est sombre, envoie, je te fais !
> |
> | ------
> | Site logiciels
> | http://irolog.free.fr
> | Mail
> | http://irolog.free.fr/ecrire/index.htm
> | Site perso
> | http://irolog.free.fr/joe/index.htm
> | Principe d'utilisation des news Groups
> |


http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
>


| --------------------------------------------------------------------------
----------
> | "Claude" a écrit dans le message de news:
> |
> | > Bonjour Jacques!
> | >
> | > J`utilise la librairie Microsoft Calendar components V 10.0 pour


aller
> | > choisir les dates.
> | > La propriétés calendar1.value est-elle numerique ou bien chaine de
> | > caracteres? Où puis-je trouver ce renseignement !
> | > VB5 contient la fonction Datediff mais le résultat est toujours 0,
> c`est
> | > pourquoi je me demande si calendar1.value est chaine. Si oui,


comment
> | > puis-je la convertir en numérique afin d`y effectuer l`opération
> | > mathematique et obtenir ainsi le nombre de jour entre mes 2 dates!
> | >
> | > merci infiniment.....
> | >
> | > Claude
> | >
> | > "Jacques93" wrote in message
> | > news:
> | > | Bonjour Claude,
> | > | Claude a écrit :
> | > | > Bonjour à tous !
> | > | >
> | > | > J`utilise VB5 et je dois me faire une application qui calcule le
> | > nombre
> | > de
> | > | > jour entre 2 dates.
> | > | > J`avais penser utiliser l`outil Calendar avec sa calendar.value
> mais
> | > le
> | > | > résultat est une chaine de caractere. Comment faire pour faire


une
> | > opération
> | > | > mathématique sur une chaine de caractere? J`ai réussi avec


Excell
> mais
> | > | > j`aimerais le faire avec VB5.
> | > | >
> | > |
> | > | Si la fonction DateDiff est présente sous VB5 (OK sous VB6) :
> | > |
> | > | MsgBox DateDiff("d", d1, d2)
> | > |
> | > | Sinon
> | > |
> | > | MsgBox d2 - d1
> | > |
> | > | Avec d2 >= d1
> | > |
> | > | En fait c'est comme sous Excel
> | > |
> | > | --
> | > | Cordialement,
> | > |
> | > | Jacques.
> | >
> | >
> |
> |
>
>





Avatar
X
De rien cher ami, serviteur :o)

------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Claude Gagné" a écrit dans le message de news:
%
2 millions de fois merci !

Claude

"X" a écrit dans le message de
news:
Salut,

En fait je n'ai pas mis de Calendar dans l'exemple, mais il te sera
facile de transposer, j'ai fait un choix par combo, car ça risquait de ne
pas marcher, nous n'avons pas la même version de VB ni la même version du
calendar, en plus ça évite un ocx de plus, et parfois la mise à jour de
sa
dépendance à la main...
Il y a 2 choix, l'un avec combo à date totale, l'autre plus souple avec 3
combos (jj + mm + aaaa)...
A toi de voir si tu veux vraiment un calendar, ou ce qui t'es proposé te
suffit :o)
Voici le code, les fichiers sources sont joints, comme les objets
(justement) sont les mêmes, ça ne devrait pas trop poser de problèmes
pour
faire du copier/coller, voire à lancer directement en vb5...
---------------------

' <> entre 2 dates : form1 : 1.0 : 22/03/06
'
' 24 OBJET A INCORPORER sur form1
' - 4 comboBox : combo1 + combo2 + combo3 + combo4
' - 6 labels : label1 + label2 + label3 + label4 + label5 + label6
' - 4 optionBoutons : option1 + option2 + option3 + option4
' - 2 textBox : text1 + text2
' - 6 boutons : command1 + command2 + command3 + command4 + command5 +
command6
' - 2 frames : frame1 + frame 2
'
' NOTE
'si utilisation de Calendar, remplacer la date obtenue par les combo
' comboX.text ou ce qui en découle, par calendarX.value
'
Option Explicit
Dim date_jour As Long
'
Sub Form_Load() ' chargement
Dim ladate As Date
Dim i As Long
'
Combo1.Clear ' mettre combo1.style = 2 POSSIBILITE 1
ladate = "01/01/1970" ' date inférieure
For i = 0 To 20000 ' date de fin = date de départ + 20.000 jours
Combo1.AddItem ladate ' met date dans combo
ladate = ladate + 1 ' date ++
If Date = ladate Then date_jour = i + 1 ' date du jour
Next i
Combo1.ListIndex = date_jour ' positionne date du jour
'
Combo2.Clear ' mettre les 3 combos.style = 2 POSSIBILITE 2
Combo3.Clear
Combo4.Clear
For i = 1 To 31
Combo2.AddItem Format(i, "00")
If i < 13 Then Combo3.AddItem Format(i, "00")
Next i
'
For i = 1900 To 2099
Combo4.AddItem i
Next i
'
Combo2.ListIndex = Day(Date) - 1 ' positionne date du jour
Combo3.ListIndex = Month(Date) - 1
Combo4.ListIndex = Year(Date) - 1900
'
Option1.Value = True ' POSSIBILITES 1 + 2
Option3.Value = True
Label2.Caption = ""
Label3.Caption = ""
Label5.Caption = ""
Label6.Caption = ""
Text1 = ""
Text2 = ""
End Sub

Sub Command1_Click() 'validation de la date POSSIBILITE 1
If Option1.Value = True Then Label2.Caption = Combo1.Text
If Option1.Value = False Then Label3.Caption = Combo1.Text
End Sub

Sub Command3_Click() 'date du jour POSSIBILITE 1
Combo1.ListIndex = date_jour
End Sub

Sub Command2_Click() 'calcule la différence POSSIBILITE 1
Dim date1 As Date
Dim date2 As Date
'
If Label2.Caption = "" Or Label3.Caption = "" Then
MsgBox "Vous devez choisir 2 dates, remédier ", vbExclamation
Exit Sub
End If
'
date1 = Label2.Caption
date2 = Label3.Caption
If date1 > date2 Then
MsgBox "La 1ere date doit être = ou < à la 2eme date, remédier ",
vbExclamation
Exit Sub
End If
'
Text1 = Format(date2 - date1, "## ##0")
End Sub

Sub Command4_Click() 'validation de la date POSSIBILITE 2
Dim verif_date As Date
'
If Option3.Value = True Then
Label5.Caption = Combo2.Text & "/" & Combo3.Text & "/" & Combo4.Text
On Error GoTo erreur
verif_date = Label5.Caption
End If
'
If Option3.Value = False Then
Label6.Caption = Combo2.Text & "/" & Combo3.Text & "/" & Combo4.Text
On Error GoTo erreur
verif_date = Label6.Caption
End If
Exit Sub
'
erreur:
On Error Resume Next
MsgBox "Cette date n'existe pas, remédier ", vbExclamation
End Sub

Sub Command6_Click() 'date du jour POSSIBILITE 2
Dim jour As Date
Combo2.ListIndex = Day(Date) - 1
Combo3.ListIndex = Month(Date) - 1
Combo4.ListIndex = Year(Date) - 1900
End Sub

Sub Command5_Click() 'calcule la défférence POSSIBILITE 2
Dim date1 As Date
Dim date2 As Date
'
If Label5.Caption = "" Or Label6.Caption = "" Then
MsgBox "Vous devez choisir 2 dates, remédier ", vbExclamation
Exit Sub
End If
'
date1 = Label5.Caption
date2 = Label6.Caption
If date1 > date2 Then
MsgBox "La 1ere date doit être = ou < à la 2eme date, remédier ",
vbExclamation
Exit Sub
End If
'
Text2 = Format(date2 - date1, "## ##0")
End Sub
------
fin de code
------

Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------


----------
"Claude" a écrit dans le message de news:

> Merci pour tes explications mais elles sont un peu sombres pour moi.
> Voici l`idée que j`aimerais faire...
>
> L`utilisateur clique sur une premiere date sur le calendrier, puis sur


une
> deuxieme.
> Ensuite, il ne reste qu`à cliquer sur un bouton pour savoir la


difference
> de
> jour entre ces 2 dates !
> C`est aussi simple que cela !
> Tu peux m`aider?
>
> En te remerciant d`avance
>
> Claude
>
> "X" wrote in message


news:
> | Salut,
> |
> | La propriété est numérique ou date (texte date), selon ce que tu
> veux,
> | voici, j'ai testé:
> |
> | Si ton code (dans un bouton 1) est ça:
> | Sub Command1_Click()
> | Dim ladate As Double
> | Dim date_a As Date
> | Dim date_b As Date
> | Text1 = CDbl(Calendar1.Value) & vbCrLf ' = 1er/01/1900
> | date_a = "21/03/2006"
> | Text1 = Text1 & date_a & vbCrLf
> | Text1 = Text1 & CDbl(date_a) & vbCrLf
> | date_a = CDate(38799)
> | Text1 = Text1 & date_a & vbCrLf
> | date_a = "21/03/2006"
> | date_b = "23/03/2006"
> | ladate = date_b - date_a
> | Text1 = Text1 & ladate & vbCrLf
> | End Sub
> |
> |
> | Ça te donne en mettant le calendar au 1/1/1900
> | 2
> | 21/03/2006
> | 38797
> | 23/03/2006
> | 2
> |
> | En conséquence (tu as vu ci-dessus comment on passait du numérique à


la
> | date, et réciproquement):
> | - En numérique, calendar commence au 31/12/1899 = jour 1
> | - Le 21/03/2006 est le jour 38797
> | - Le 23/03/2006 est le jour 38799
> | donc 38799-39797 = 2, il y a 2 jours entre le 21 et le 23/3/2006
> |
> |
> | En conclusions:
> |
> | - Pour passer d'une date texte à une date numérique:
> | Dim ladate As Double
> | Dim date_a As Date
> | ladate = CDbl(Calendar1.Value)
> |
> | - Pour passer d'une date numérique à une date texte:
> | Dim ladate As Double
> | Dim date_a As Date
> | date_a = CDate(38799)
> |
> | - pour calculer l'écart entre 2 dates texte
> | dim numérique as double
> | dim date1 as date
> | dim date2 as date
> | date1="21/03/2006"
> | date2="23/03/2006"
> | numerique = date2 - date1 (= 2)
> |
> | Et si tu représente une date avec une heure, ce sera alors une


décimal,
> | comme déjà épondu:
> | nombre de jours depuis le 31/12/1899 ,virgule, nombre de secondes
> | j,s
> |
> | Si tu utilises les fonctions indiquées par Jacques ça donnera la même
> chose,
> | à toi de voir si tu veux faire du calcul ou utiliser les fonctions
> | prédéfinies...
> |
> | Est-ce clair, si c'est sombre, envoie, je te fais !
> |
> | ------
> | Site logiciels
> | http://irolog.free.fr
> | Mail
> | http://irolog.free.fr/ecrire/index.htm
> | Site perso
> | http://irolog.free.fr/joe/index.htm
> | Principe d'utilisation des news Groups
> |


http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
>


| --------------------------------------------------------------------------
----------
> | "Claude" a écrit dans le message de news:
> |
> | > Bonjour Jacques!
> | >
> | > J`utilise la librairie Microsoft Calendar components V 10.0 pour


aller
> | > choisir les dates.
> | > La propriétés calendar1.value est-elle numerique ou bien chaine de
> | > caracteres? Où puis-je trouver ce renseignement !
> | > VB5 contient la fonction Datediff mais le résultat est toujours 0,
> c`est
> | > pourquoi je me demande si calendar1.value est chaine. Si oui,


comment
> | > puis-je la convertir en numérique afin d`y effectuer l`opération
> | > mathematique et obtenir ainsi le nombre de jour entre mes 2 dates!
> | >
> | > merci infiniment.....
> | >
> | > Claude
> | >
> | > "Jacques93" wrote in message
> | > news:
> | > | Bonjour Claude,
> | > | Claude a écrit :
> | > | > Bonjour à tous !
> | > | >
> | > | > J`utilise VB5 et je dois me faire une application qui calcule
> le
> | > nombre
> | > de
> | > | > jour entre 2 dates.
> | > | > J`avais penser utiliser l`outil Calendar avec sa calendar.value
> mais
> | > le
> | > | > résultat est une chaine de caractere. Comment faire pour faire


une
> | > opération
> | > | > mathématique sur une chaine de caractere? J`ai réussi avec


Excell
> mais
> | > | > j`aimerais le faire avec VB5.
> | > | >
> | > |
> | > | Si la fonction DateDiff est présente sous VB5 (OK sous VB6) :
> | > |
> | > | MsgBox DateDiff("d", d1, d2)
> | > |
> | > | Sinon
> | > |
> | > | MsgBox d2 - d1
> | > |
> | > | Avec d2 >= d1
> | > |
> | > | En fait c'est comme sous Excel
> | > |
> | > | --
> | > | Cordialement,
> | > |
> | > | Jacques.
> | >
> | >
> |
> |
>
>









Avatar
Claude
Salut!

Et bien, grace à ton aide, j`ai réussi à trouver la solution !

Voici donc mon code.... tres simple en fait....


merci pour tes lumières !

Claude


Dim D1 As Date
Dim D2 As Date


Private Sub Command1_Click() `bouton 1 ère date
Text3.Text = Calendar1.Value
D1 = Text3.Text
End Sub


Private Sub Command2_Click() `bouton 2 ieme date
Text2.Text = Calendar1.Value
D2 = Text2.Text
valeur = DateDiff("d", D1, D2)
If D2 < D1 Then MsgBox "La 1ere date doit être = ou < à la 2eme date, ",
vbExclamation
Text1.Text = valeur
End Sub


Private Sub Command3_Click()` bouton recommencer
Text3.Text = ""
Text2.Text = ""
Text1.Text = ""
End Sub




"X" wrote in message news:%
| De rien cher ami, serviteur :o)
|
| ------
| Site logiciels
| http://irolog.free.fr
| Mail
| http://irolog.free.fr/ecrire/index.htm
| Site perso
| http://irolog.free.fr/joe/index.htm
| Principe d'utilisation des news Groups
| http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
| ------------------------------------------------------------------------------------
| "Claude Gagné" a écrit dans le message de news:
| %
| >2 millions de fois merci !
| >
| > Claude
| >
| > "X" a écrit dans le message de
| > news:
| >> Salut,
| >>
| >> En fait je n'ai pas mis de Calendar dans l'exemple, mais il te sera
| >> facile de transposer, j'ai fait un choix par combo, car ça risquait de
ne
| >> pas marcher, nous n'avons pas la même version de VB ni la même version
du
| >> calendar, en plus ça évite un ocx de plus, et parfois la mise à jour de
| >> sa
| >> dépendance à la main...
| >> Il y a 2 choix, l'un avec combo à date totale, l'autre plus souple avec
3
| >> combos (jj + mm + aaaa)...
| >> A toi de voir si tu veux vraiment un calendar, ou ce qui t'es proposé
te
| >> suffit :o)
| >> Voici le code, les fichiers sources sont joints, comme les objets
| >> (justement) sont les mêmes, ça ne devrait pas trop poser de problèmes
| >> pour
| >> faire du copier/coller, voire à lancer directement en vb5...
| >> ---------------------
| >>
| >> ' <> entre 2 dates : form1 : 1.0 : 22/03/06
| >> '
| >> ' 24 OBJET A INCORPORER sur form1
| >> ' - 4 comboBox : combo1 + combo2 + combo3 + combo4
| >> ' - 6 labels : label1 + label2 + label3 + label4 + label5 + label6
| >> ' - 4 optionBoutons : option1 + option2 + option3 + option4
| >> ' - 2 textBox : text1 + text2
| >> ' - 6 boutons : command1 + command2 + command3 + command4 + command5
+
| >> command6
| >> ' - 2 frames : frame1 + frame 2
| >> '
| >> ' NOTE
| >> 'si utilisation de Calendar, remplacer la date obtenue par les combo
| >> ' comboX.text ou ce qui en découle, par calendarX.value
| >> '
| >> Option Explicit
| >> Dim date_jour As Long
| >> '
| >> Sub Form_Load() ' chargement
| >> Dim ladate As Date
| >> Dim i As Long
| >> '
| >> Combo1.Clear ' mettre combo1.style = 2 POSSIBILITE 1
| >> ladate = "01/01/1970" ' date inférieure
| >> For i = 0 To 20000 ' date de fin = date de départ + 20.000 jours
| >> Combo1.AddItem ladate ' met date dans combo
| >> ladate = ladate + 1 ' date ++
| >> If Date = ladate Then date_jour = i + 1 ' date du jour
| >> Next i
| >> Combo1.ListIndex = date_jour ' positionne date du jour
| >> '
| >> Combo2.Clear ' mettre les 3 combos.style = 2 POSSIBILITE 2
| >> Combo3.Clear
| >> Combo4.Clear
| >> For i = 1 To 31
| >> Combo2.AddItem Format(i, "00")
| >> If i < 13 Then Combo3.AddItem Format(i, "00")
| >> Next i
| >> '
| >> For i = 1900 To 2099
| >> Combo4.AddItem i
| >> Next i
| >> '
| >> Combo2.ListIndex = Day(Date) - 1 ' positionne date du jour
| >> Combo3.ListIndex = Month(Date) - 1
| >> Combo4.ListIndex = Year(Date) - 1900
| >> '
| >> Option1.Value = True ' POSSIBILITES 1 + 2
| >> Option3.Value = True
| >> Label2.Caption = ""
| >> Label3.Caption = ""
| >> Label5.Caption = ""
| >> Label6.Caption = ""
| >> Text1 = ""
| >> Text2 = ""
| >> End Sub
| >>
| >> Sub Command1_Click() 'validation de la date POSSIBILITE 1
| >> If Option1.Value = True Then Label2.Caption = Combo1.Text
| >> If Option1.Value = False Then Label3.Caption = Combo1.Text
| >> End Sub
| >>
| >> Sub Command3_Click() 'date du jour POSSIBILITE 1
| >> Combo1.ListIndex = date_jour
| >> End Sub
| >>
| >> Sub Command2_Click() 'calcule la différence POSSIBILITE 1
| >> Dim date1 As Date
| >> Dim date2 As Date
| >> '
| >> If Label2.Caption = "" Or Label3.Caption = "" Then
| >> MsgBox "Vous devez choisir 2 dates, remédier ", vbExclamation
| >> Exit Sub
| >> End If
| >> '
| >> date1 = Label2.Caption
| >> date2 = Label3.Caption
| >> If date1 > date2 Then
| >> MsgBox "La 1ere date doit être = ou < à la 2eme date, remédier ",
| >> vbExclamation
| >> Exit Sub
| >> End If
| >> '
| >> Text1 = Format(date2 - date1, "## ##0")
| >> End Sub
| >>
| >> Sub Command4_Click() 'validation de la date POSSIBILITE 2
| >> Dim verif_date As Date
| >> '
| >> If Option3.Value = True Then
| >> Label5.Caption = Combo2.Text & "/" & Combo3.Text & "/" &
Combo4.Text
| >> On Error GoTo erreur
| >> verif_date = Label5.Caption
| >> End If
| >> '
| >> If Option3.Value = False Then
| >> Label6.Caption = Combo2.Text & "/" & Combo3.Text & "/" &
Combo4.Text
| >> On Error GoTo erreur
| >> verif_date = Label6.Caption
| >> End If
| >> Exit Sub
| >> '
| >> erreur:
| >> On Error Resume Next
| >> MsgBox "Cette date n'existe pas, remédier ", vbExclamation
| >> End Sub
| >>
| >> Sub Command6_Click() 'date du jour POSSIBILITE 2
| >> Dim jour As Date
| >> Combo2.ListIndex = Day(Date) - 1
| >> Combo3.ListIndex = Month(Date) - 1
| >> Combo4.ListIndex = Year(Date) - 1900
| >> End Sub
| >>
| >> Sub Command5_Click() 'calcule la défférence POSSIBILITE 2
| >> Dim date1 As Date
| >> Dim date2 As Date
| >> '
| >> If Label5.Caption = "" Or Label6.Caption = "" Then
| >> MsgBox "Vous devez choisir 2 dates, remédier ", vbExclamation
| >> Exit Sub
| >> End If
| >> '
| >> date1 = Label5.Caption
| >> date2 = Label6.Caption
| >> If date1 > date2 Then
| >> MsgBox "La 1ere date doit être = ou < à la 2eme date, remédier ",
| >> vbExclamation
| >> Exit Sub
| >> End If
| >> '
| >> Text2 = Format(date2 - date1, "## ##0")
| >> End Sub
| >> ------
| >> fin de code
| >> ------
| >>
| >> Site logiciels
| >> http://irolog.free.fr
| >> Mail
| >> http://irolog.free.fr/ecrire/index.htm
| >> Site perso
| >> http://irolog.free.fr/joe/index.htm
| >> Principe d'utilisation des news Groups
| >>
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
|
>> --------------------------------------------------------------------------
| > ----------
| >> "Claude" a écrit dans le message de news:
| >>
| >> > Merci pour tes explications mais elles sont un peu sombres pour moi.
| >> > Voici l`idée que j`aimerais faire...
| >> >
| >> > L`utilisateur clique sur une premiere date sur le calendrier, puis
sur
| > une
| >> > deuxieme.
| >> > Ensuite, il ne reste qu`à cliquer sur un bouton pour savoir la
| > difference
| >> > de
| >> > jour entre ces 2 dates !
| >> > C`est aussi simple que cela !
| >> > Tu peux m`aider?
| >> >
| >> > En te remerciant d`avance
| >> >
| >> > Claude
| >> >
| >> > "X" wrote in message
| > news:
| >> > | Salut,
| >> > |
| >> > | La propriété est numérique ou date (texte date), selon ce que tu
| >> > veux,
| >> > | voici, j'ai testé:
| >> > |
| >> > | Si ton code (dans un bouton 1) est ça:
| >> > | Sub Command1_Click()
| >> > | Dim ladate As Double
| >> > | Dim date_a As Date
| >> > | Dim date_b As Date
| >> > | Text1 = CDbl(Calendar1.Value) & vbCrLf ' = 1er/01/1900
| >> > | date_a = "21/03/2006"
| >> > | Text1 = Text1 & date_a & vbCrLf
| >> > | Text1 = Text1 & CDbl(date_a) & vbCrLf
| >> > | date_a = CDate(38799)
| >> > | Text1 = Text1 & date_a & vbCrLf
| >> > | date_a = "21/03/2006"
| >> > | date_b = "23/03/2006"
| >> > | ladate = date_b - date_a
| >> > | Text1 = Text1 & ladate & vbCrLf
| >> > | End Sub
| >> > |
| >> > |
| >> > | Ça te donne en mettant le calendar au 1/1/1900
| >> > | 2
| >> > | 21/03/2006
| >> > | 38797
| >> > | 23/03/2006
| >> > | 2
| >> > |
| >> > | En conséquence (tu as vu ci-dessus comment on passait du numérique
à
| > la
| >> > | date, et réciproquement):
| >> > | - En numérique, calendar commence au 31/12/1899 = jour 1
| >> > | - Le 21/03/2006 est le jour 38797
| >> > | - Le 23/03/2006 est le jour 38799
| >> > | donc 38799-39797 = 2, il y a 2 jours entre le 21 et le 23/3/2006
| >> > |
| >> > |
| >> > | En conclusions:
| >> > |
| >> > | - Pour passer d'une date texte à une date numérique:
| >> > | Dim ladate As Double
| >> > | Dim date_a As Date
| >> > | ladate = CDbl(Calendar1.Value)
| >> > |
| >> > | - Pour passer d'une date numérique à une date texte:
| >> > | Dim ladate As Double
| >> > | Dim date_a As Date
| >> > | date_a = CDate(38799)
| >> > |
| >> > | - pour calculer l'écart entre 2 dates texte
| >> > | dim numérique as double
| >> > | dim date1 as date
| >> > | dim date2 as date
| >> > | date1="21/03/2006"
| >> > | date2="23/03/2006"
| >> > | numerique = date2 - date1 (= 2)
| >> > |
| >> > | Et si tu représente une date avec une heure, ce sera alors une
| > décimal,
| >> > | comme déjà épondu:
| >> > | nombre de jours depuis le 31/12/1899 ,virgule, nombre de secondes
| >> > | j,s
| >> > |
| >> > | Si tu utilises les fonctions indiquées par Jacques ça donnera la
même
| >> > chose,
| >> > | à toi de voir si tu veux faire du calcul ou utiliser les fonctions
| >> > | prédéfinies...
| >> > |
| >> > | Est-ce clair, si c'est sombre, envoie, je te fais !
| >> > |
| >> > | ------
| >> > | Site logiciels
| >> > | http://irolog.free.fr
| >> > | Mail
| >> > | http://irolog.free.fr/ecrire/index.htm
| >> > | Site perso
| >> > | http://irolog.free.fr/joe/index.htm
| >> > | Principe d'utilisation des news Groups
| >> > |
| > http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
| >> >
| >
| --------------------------------------------------------------------------
| > ----------
| >> > | "Claude" a écrit dans le message de news:
| >> > |
| >> > | > Bonjour Jacques!
| >> > | >
| >> > | > J`utilise la librairie Microsoft Calendar components V 10.0 pour
| > aller
| >> > | > choisir les dates.
| >> > | > La propriétés calendar1.value est-elle numerique ou bien chaine
de
| >> > | > caracteres? Où puis-je trouver ce renseignement !
| >> > | > VB5 contient la fonction Datediff mais le résultat est toujours
0,
| >> > c`est
| >> > | > pourquoi je me demande si calendar1.value est chaine. Si oui,
| > comment
| >> > | > puis-je la convertir en numérique afin d`y effectuer l`opération
| >> > | > mathematique et obtenir ainsi le nombre de jour entre mes 2
dates!
| >> > | >
| >> > | > merci infiniment.....
| >> > | >
| >> > | > Claude
| >> > | >
| >> > | > "Jacques93" wrote in message
| >> > | > news:
| >> > | > | Bonjour Claude,
| >> > | > | Claude a écrit :
| >> > | > | > Bonjour à tous !
| >> > | > | >
| >> > | > | > J`utilise VB5 et je dois me faire une application qui calcule
| >> > le
| >> > | > nombre
| >> > | > de
| >> > | > | > jour entre 2 dates.
| >> > | > | > J`avais penser utiliser l`outil Calendar avec sa
calendar.value
| >> > mais
| >> > | > le
| >> > | > | > résultat est une chaine de caractere. Comment faire pour
faire
| > une
| >> > | > opération
| >> > | > | > mathématique sur une chaine de caractere? J`ai réussi avec
| > Excell
| >> > mais
| >> > | > | > j`aimerais le faire avec VB5.
| >> > | > | >
| >> > | > |
| >> > | > | Si la fonction DateDiff est présente sous VB5 (OK sous VB6) :
| >> > | > |
| >> > | > | MsgBox DateDiff("d", d1, d2)
| >> > | > |
| >> > | > | Sinon
| >> > | > |
| >> > | > | MsgBox d2 - d1
| >> > | > |
| >> > | > | Avec d2 >= d1
| >> > | > |
| >> > | > | En fait c'est comme sous Excel
| >> > | > |
| >> > | > | --
| >> > | > | Cordialement,
| >> > | > |
| >> > | > | Jacques.
| >> > | >
| >> > | >
| >> > |
| >> > |
| >> >
| >> >
| >>
| >>
| >>
| >
| >
|
|
1 2