Récupérer date dans format datetime VBA
Fermé
vans7k
-
15 avril 2011 à 11:52
michel_m Messages postés 16593 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 7 mars 2023 - 28 avril 2011 à 08:17
michel_m Messages postés 16593 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 7 mars 2023 - 28 avril 2011 à 08:17
4 réponses
Bonjour,
Suggestion de code :
Cdt
Lupin
Suggestion de code :
Option Explicit
'
Sub Test()
Dim JourIntervalle As Date
Dim HeureDebut As Date
Dim HeureFin As Date
Dim SommeEvenement As Variant
Dim NbEvenement As Long
Dim j As Integer
JourIntervalle = Now
HeureDebut = Now
HeureFin = Now
j = 1
While Format((Sheets("feuil1").Range("A" & j).Value), "YYYY-MM-DD") = Format(JourIntervalle, "YYYY-MM-DD")
If (Format((Sheets("feuil1").Range("A" & j).Value), "HH:MM:SS") >= Format(HeureDebut, "HH:MM:SS")) And _
(Format((Sheets("feuille1").Range("A" & j).Value), "HH:MM:SS") <= Format(HeureFin, "HH:MM:SS")) Then
SommeEvenement = SommeEvenement + Sheets("feuil1").Range("D" & j).Value
NbEvenement = NbEvenement + 1
End If
j = j + 1
Wend
End Sub
'
Cdt
Lupin
Merci, cependant celà ne semble pas fonctionner.
Je voudrais aussi faire la différence entre deux dates avec DateDiff cependant à cause de ces format ça ne me donne pas le bon resultat.
voici ma formule :
NbJours = DateDiff("d", Sheets("feuille1").Range("A2").Value, Sheets("feuille1").Range("A2").End(xlDown).Value) + 1
Et aussi faire un DateAdd pour ajouter un nombre de jour à ma date de début dans ma boucle (même problème):
DateCherchee = DateAdd("d", Jour, ActiveWorkbook.Sheets("feuille1").Range("A2").Value)
Si vous avez une idée ?!
Merci
Je voudrais aussi faire la différence entre deux dates avec DateDiff cependant à cause de ces format ça ne me donne pas le bon resultat.
voici ma formule :
NbJours = DateDiff("d", Sheets("feuille1").Range("A2").Value, Sheets("feuille1").Range("A2").End(xlDown).Value) + 1
Et aussi faire un DateAdd pour ajouter un nombre de jour à ma date de début dans ma boucle (même problème):
DateCherchee = DateAdd("d", Jour, ActiveWorkbook.Sheets("feuille1").Range("A2").Value)
Si vous avez une idée ?!
Merci
Bonjour,
Suggestion :
Décomposer votre code en y insérant des variables.
Exemple :
NbJours = DateDiff("d", Sheets("feuille1").Range("A2").Value, Sheets("feuille1").Range("A2").End(xlDown).Value) + 1
En décomposant ainsi, vous diminuer le risque d'erreur.
Personnellement, je code sous VBA depuis 1995 et je décompose
encore lorsque le code devient compliqué à lire et de fait même
à interprèter.
Enfin, cela demeure un opignon personnel.
Cdt
Lupin
Suggestion :
Décomposer votre code en y insérant des variables.
Exemple :
NbJours = DateDiff("d", Sheets("feuille1").Range("A2").Value, Sheets("feuille1").Range("A2").End(xlDown).Value) + 1
Sub Test()
Dim NbJours As Long
Dim Valeur1 As Variant
Dim Valeur2 As Variant
Valeur1 = Sheets("feuille1").Range("A2").Value
Valeur2 = Sheets("feuille1").Range("A2").End(xlDown).Value
NbJours = DateDiff("d", Valeur1, Valeur2) + 1
MsgBox NbJours
End Sub
'
En décomposant ainsi, vous diminuer le risque d'erreur.
Personnellement, je code sous VBA depuis 1995 et je décompose
encore lorsque le code devient compliqué à lire et de fait même
à interprèter.
Enfin, cela demeure un opignon personnel.
Cdt
Lupin
michel_m
Messages postés
16593
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
7 mars 2023
3 291
Modifié par michel_m le 28/04/2011 à 08:28
Modifié par michel_m le 28/04/2011 à 08:28
Bonjour
en VBa, il vaut mieux travailler en numéro de série
par ex démo d'école qui mémorise une date heure et restitue la date 10 jours et 2 heures+ tard
ainsi les calculs sur les dates et heures sont facilités: pas besoin de datediff par exemple
Michel
en VBa, il vaut mieux travailler en numéro de série
par ex démo d'école qui mémorise une date heure et restitue la date 10 jours et 2 heures+ tard
Dim Jour As Long
Dim Jour As Long
Dim Heure As Double
With Sheets(1)
'mémorisation
Jour = Int(Range("A1"))
Heure = Range("A1") - Jour
'restitution
With Range("A2")
.Value = (Jour+10) + (Heure+120/1440)
.NumberFormat = "dd/mm/yyyy h:mm;@"
End With
End With
ainsi les calculs sur les dates et heures sont facilités: pas besoin de datediff par exemple
Michel