Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2243 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA][Excel] comparer deux dates

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA][Excel] comparer deux dates

n°1771057
fatloui
I'll be back
Posté le 08-08-2008 à 10:41:02  profilanswer
 

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

mood
Publicité
Posté le 08-08-2008 à 10:41:02  profilanswer
 

n°1771122
86vomito33
Posté le 08-08-2008 à 12:06:56  profilanswer
 

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

n°1771266
fatloui
I'll be back
Posté le 08-08-2008 à 14:54:01  profilanswer
 

ok c'est tout à fait ca
merci

n°1771892
fatloui
I'll be back
Posté le 11-08-2008 à 11:38:22  profilanswer
 

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?

n°1771914
86vomito33
Posté le 11-08-2008 à 12:53:07  profilanswer
 

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))


Message édité par 86vomito33 le 11-08-2008 à 12:54:10
n°1771937
fatloui
I'll be back
Posté le 11-08-2008 à 14:12:57  profilanswer
 

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?

n°1771947
fatloui
I'll be back
Posté le 11-08-2008 à 14:28:45  profilanswer
 

autant (au temps) pour moi, je n'étais pas sur la bonne cellule. Maintenant ca marche Merci !!!

n°1771954
86vomito33
Posté le 11-08-2008 à 14:41:06  profilanswer
 

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

n°1784238
Pirotessa
Posté le 09-09-2008 à 07:46:37  profilanswer
 

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.
 

n°1784432
86vomito33
Posté le 09-09-2008 à 13:24:07  profilanswer
 

pluto faire comme ca
 

Code :
  1. Dim Date_A As Date
  2. Dim datedeb As Date
  3. Dim lignefinal As Variant
  4. Date_A = InputBox("Date debut de tranche dd/mm/yy" )
  5. while Cells(13, 4).Value < Date_A
  6. Rows(13).Select
  7. Selection.Delete Shift:=xlUp
  8. wend


 
si dans ta cellule tu es effectivement avec 10.01.08 ca va pas le faire
vaudrait mieux 10/01/08

mood
Publicité
Posté le 09-09-2008 à 13:24:07  profilanswer
 

n°1784439
Moonschild
Posté le 09-09-2008 à 13:33:29  profilanswer
 

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...


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1785368
Pirotessa
Posté le 11-09-2008 à 08:23:57  profilanswer
 

:hello:  
 
Merci bien, sa fonctionne au poil ^^

n°2187568
sadhya
Posté le 25-04-2013 à 16:01:04  profilanswer
 

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

n°2187569
sadhya
Posté le 25-04-2013 à 16:02:18  profilanswer
 

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  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA][Excel] comparer deux dates

 

Sujets relatifs
Renseigner le champ From d'Outlook avec Excel[Résolu] Tuer le processus EXCEL.EXE depuis une application vba/access
[VBA] chemin disque réseau[Excel] Rechercher un élément différent - Résolu
[Excel]Aide sur fonctions de recherche[VBA] Somme des valeurs dans une colonne...
[RESOLU] vba excel connaitre le nombre de colonnesJava lenteur ouverture fichier Excel
[VBA][Excel] Problème d'ecriture dans un nouveau document 
Plus de sujets relatifs à : [VBA][Excel] comparer deux dates


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR