Problème de division

Résolu
corazul333 Messages postés 12 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 21 mars 2006 - 28 févr. 2006 à 14:13
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 - 28 févr. 2006 à 15:27
Bonjour ,

Je voudrai effectuer une division entre deux nombres au format date.
C'est a dire que je voudrai diviser 24:0:0 par 0:5:0 mais a chaque fois que j'execute le programme ça dit Type Incompatible.
Merci de m'aider

6 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
28 févr. 2006 à 14:39
Salut,



Il n'existe pas d'opérateur de division sur des objets Date.

Par contre, tu peux te créer une fonction qui fait çà.
En supposant que des données horaires auront toujours ce format (HH:MM:SS) :


Private Sub CommandButton1_Click()

MsgBox diviseHeures("24:0:0", "0:5:0")

End Sub



Public Function diviseHeures(sDividende As String, sDiviseur As String) As String

Dim lDVDD As Double

Dim lDVS As Double

Dim tablo() As String

Dim lQuotient As Double



tablo = Split(sDividende, ":")

lDVDD = 3600 * CDbl(tablo(0)) + 24 * CDbl(tablo(1)) + CDbl(tablo(2))



tablo = Split(sDiviseur, ":")

lDVS = 3600 * CDbl(tablo(0)) + 24 * CDbl(tablo(1)) + CDbl(tablo(2))



lQuotient = Int(lDVDD / lDVS)



diviseHeures = CStr(lQuotient)

End Function




Manu
3
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
28 févr. 2006 à 14:27
Bonjour,
A mon avis, le plus simple est de convertir des 2 'dates' en secondes, de faire ta division puis de reconvertir le resultat.
@+Megafan
0
Egyde Messages postés 158 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 16 juillet 2007
28 févr. 2006 à 14:28
Il faut que tu convertisses tous en minutes par exemple, avant de diviser par des minutes, et éventuellement reconvertir au format date au final.
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
28 févr. 2006 à 14:54
on peut pas diviser des Dates, mais on peut diviser des temps.

donc limite 24 heures.







Dim dt1 As Date

Dim dt2 As Date



dt1 = "20:00:00"

dt2 = "00:05:00"

MsgBox dt1 / dt2 ' = 240

Daniel
0

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

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
28 févr. 2006 à 15:21
à partir de 24 heures, il faut les rentrer autrement:









Dim dt1 As Date

Dim dt2 As Date



dt1 = TimeSerial(24, 0, 0)

dt2 = TimeSerial(0, 5, 0)

MsgBox dt1 / dt2 ' = 288

Daniel
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
28 févr. 2006 à 15:27
Bonjour

Le mieux serait d'utiliser TimeSpan non ? (dans vb.net 2002/2003/2005)
http://www.troxsa.info/Code VB.net
0
Rejoignez-nous