VBA/Excel2003/importer une date dans une var

Fermé
by - 7 juil. 2011 à 09:48
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 7 juil. 2011 à 16:53
Bonjour,

Je dois calculer le nombre d'heures séparant la date de demande d'intervention, et la date de réalisation. Plusieurs topics en parlent ms aucun ne me permet de règler mon pb.

Voici mon code (j'ai créé une fonction, que j'appelle par la suite dans ma procédure Sub, le 1er souci qui se pose c'est que je n'arrive pas à récupérer dans mes variables la date apparaissant dans mes cellules sur ma feuille de calcul)

Function EcartDates(DateDemande As Date, DebutRealisation As Date) As Double

EcartDates = DateDiff("h", DateDemande, DebutRealisation, vbMonday, vbFirstJan1)

End Function


Sub Delai()

Dim i As Byte
Dim DateDemande As Date
Dim DebutRealisation As Date

For i = 2 To 10

DateDemande = Worksheets("Depart").Cells(i, L).Value
DebutRealisation = Worksheets("Depart").Cells(i, L).Value
Worksheets("Depart").Cells(i, BQ) = EcartDates(DateDemande, DebutRealisation)


Next

End Sub


1 réponse

thordek Messages postés 32 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 12 septembre 2013 9
7 juil. 2011 à 14:12
Bonjour,

Premierement, ta fonction marche très bien.

Par contre, dans ta procedure, c'est quoi ces "Cells(i,L)" ? Ca ne veut rien dire. La colonne L est la colonne numéro 12. Du coup, ça s'ecrit : Cells(i,12)

Essaye déjà ça.

Cdt,

Thordek
0
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
Modifié par michel_m le 7/07/2011 à 16:57
Bonjour

petite astuce:
on peut écrire
cells(i,"L")

+ lisible si on n'a pas à incrémenter les colonnes...

de m^me il vaut coder par "blocs" beaucoup sécurisant et pouvant éviter de sheets("machin").activate très lent et peu pratiques

With Worksheets("Depart")
     DateDemande = .Cells(i, "L").Value
     DebutRealisation = .Cells(i, "L").Value
     .Cells(i, "BQ") = EcartDates(DateDemande, DebutRealisation)
End With
0