comparer deux dates [VBA][Excel] - VB/VBA/VBS - Programmation
Marsh Posté le 08-08-2008 à 12:06:56
bonjour,
surement mois(date) ou month(date) et year(date) ou annee(date)
tu auras peut etre besoin des
select case tavariable
case 1 to 4 (or > 6)
faire ...
case ..
faire ...
end select
Marsh Posté le 11-08-2008 à 11:38:22
Je souhaiterai juste avoir une petite info supplementaire.
Dans une cellule, j'ai une date au format JJ/MM/AA
Comment faire pour la lire et la stocker dans une variable de type date?
Marsh Posté le 11-08-2008 à 12:53:07
dim dd as date
dd=range("A1" )
ou dd = cells(1,1)
peut etre utile:
fonction chr (la lettre A est chr(65))
range("A1:A10" ) equivalent a range("A1:"&chr(65)&"10) utile si tu selectionne une cellule en fonction d'une variable
qui est aussi equivalent a range(cells(1,1),cells(10,1))
Marsh Posté le 11-08-2008 à 14:12:57
oki merci
j'avais tenté ca des le debut mais j'ai une erreur "incompatibility type"
en fait j'avais pas fait gaffe mais la cellule est (JJ/MM/AA hh:mm) cela pose peut etre probleme non?
Marsh Posté le 11-08-2008 à 14:28:45
autant (au temps) pour moi, je n'étais pas sur la bonne cellule. Maintenant ca marche Merci !!!
Marsh Posté le 11-08-2008 à 14:41:06
si tu prefere avoir JJ/MM/AA hh:mm et recuperer juste la date que tu copie ailleurs (par exemple) tu peux faire dat=mid(lacelluleavecceformat,1,8) voir aide
Marsh Posté le 09-09-2008 à 07:46:37
Bonjour,
Je suis moi aussi embêté par des comparaisons de dates, cependant, je dois admettre qe j'ai pas réellement compris se que vous évoquiez dans les lignes précédentes.
Pour ma part j'ai fais sa (qui ne fonctionne pas ...) :
Dim Date_A As Date
Dim datedeb As Date
Dim lignefinal As Variant
Date_A = InputBox("Date debut de tranche dd.mm.yy" )
lignefinal = 13
mef_date_A:
datedeb = Cells(lignefinal, 4).Value
If datedeb < Date_A Then
Rows(lignefinal).Select
Selection.Delete Shift:=xlUp
Else: GoSub fin
End If
GoSub mef_date_A
fin:
Alors pour info ma 1ere date en D13 est le 01.10.03, je veux donc supprimer ma ligne lorsque la date que j'ai saisi " Date_A" est supérieure à ma date ce trouvant en D13.
Si quelqu'un a une idée, je suis tout ouïe .
Par avance, merci.
Marsh Posté le 09-09-2008 à 13:24:07
pluto faire comme ca
Code :
|
si dans ta cellule tu es effectivement avec 10.01.08 ca va pas le faire
vaudrait mieux 10/01/08
Marsh Posté le 09-09-2008 à 13:33:29
Si tu veux etre sur de la maniere dont sera ecrit la date, utilise plutot while format(cells(13,4).value, "dd/mm/yyyy" ) < Date_A
Qui uniformisera le format de la date...
Marsh Posté le 25-04-2013 à 16:01:04
Bonjour je suis actuellement en stage et j'ai quelques petites interrogations sur comment comparer deux dates. J'ai essayé plusieurs codes mais cela fonctionne pas je vous ai mis ci dessous mon dernier code. Sur ma feuille excel il y a toutes les interventions qui ont été effectué depuis 4 ans . à la demande de l'utilisateur il doit en ressortir toutes les interventions pour lesquelles la date qui est dans la colonne 5 est comprise entre l'intervalle que l'utilisateur aura saisie. JATTENDS PATIEMMENT VOS REPONSES PARCE QUE JE SUIS DANS UNE IMPASSE ....
Dim i As Integer
Dim stock As Date
Dim DateDebut As Date
Dim DateFin As Date
Dim papi As Integer
fin = Range("A1" ).End(xlDown).Row
DateDebut = InputBox("Entrer la date ", " Date de debut d'intervalle ", "01/01/2013 " )
MsgBox "Bonjour" & Chr(10) & "La date est " & DateDebut
DateFin = InputBox("Entrer la date ", " Date de fin d'intervalle ", "01/01/2013 " )
MsgBox "Bonjour" & Chr(10) & "La date est " & DateFin
For i = 2 To fin
Cells(i, 5).Select
stock = Cells(i, 5).Value
If (stock <= DateDebut) Or (stock >= DateFin) Then
Rows(i).Select
Selection.Delete Shift:=xlUp
papi = Range("A1" ).End(xlDown).Row
fin = papi
End If
Next i
Marsh Posté le 25-04-2013 à 16:02:18
Bonjour je suis actuellement en stage et j'ai quelques petites interrogations sur comment comparer deux dates. J'ai essayé plusieurs codes mais cela fonctionne pas je vous ai mis ci dessous mon dernier code. Sur ma feuille excel il y a toutes les interventions qui ont été effectué depuis 4 ans . à la demande de l'utilisateur il doit en ressortir toutes les interventions pour lesquelles la date qui est dans la colonne 5 est comprise entre l'intervalle que l'utilisateur aura saisie. JATTENDS PATIEMMENT VOS REPONSES PARCE QUE JE SUIS DANS UNE IMPASSE ....
Dim i As Integer
Dim stock As Date
Dim DateDebut As Date
Dim DateFin As Date
Dim papi As Integer
fin = Range("A1" ).End(xlDown).Row
DateDebut = InputBox("Entrer la date ", " Date de debut d'intervalle ", "01/01/2013 " )
MsgBox "Bonjour" & Chr(10) & "La date est " & DateDebut
DateFin = InputBox("Entrer la date ", " Date de fin d'intervalle ", "01/01/2013 " )
MsgBox "Bonjour" & Chr(10) & "La date est " & DateFin
For i = 2 To fin
Cells(i, 5).Select
stock = Cells(i, 5).Value
If (stock <= DateDebut) Or (stock >= DateFin) Then
Rows(i).Select
Selection.Delete Shift:=xlUp
papi = Range("A1" ).End(xlDown).Row
fin = papi
End If
Next i
Marsh Posté le 08-08-2008 à 10:41:02
Bonjour,
je souhaiterai faire une macro qui comparerait 2 variables types dates
(C'est une macro permettant de faire des statistiques)
Je comparerai donc la date du mois en cours (01/07/2008)
avec d'autres dates (comme 23/07/2008 ou 23/06/2008 ou 12/12/2007)
je veux donc savoir si la date se situe dans le mois en cours ou dans le mois precedent ou il y a plus de deux mois.
Je sais pas si j'ai bien été clair.
plus simple : existe t il une fonction permettant de comparer le mois et l'année d'une date.
Merci