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