IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

comparaison de deux dates


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    etudiante
    Inscrit en
    Avril 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Avril 2013
    Messages : 20
    Par défaut comparaison de deux dates
    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. j'attends patiemment vos reponses parce que je suis dans une impasse ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    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

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Par défaut
    Salut, il faut convertir ta variable stock en Date.

    Pour ce faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    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 = CDate(Cells(1, 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

  3. #3
    Membre averti
    Femme Profil pro
    etudiante
    Inscrit en
    Avril 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Avril 2013
    Messages : 20
    Par défaut
    Salut amrod93 je te remercie déjà pour ta réponse .

    Alors la ligne 20 de conversion de stock me rencoie ( une erreur d'exécution'13', Incompatibilité de type )

    Pour vous donner plus d'informations dans la colonne numéro 5 les dates sont de type dd/mm/yyyy.

    Par ailleurs sais-tu si il est possible d'intialiser les format des colonnes en programmant ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    bonjour,
    toutes les date sont du texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    stock = CDate("" & Cells(1, 5).Value)
    CDate(DateDebut)
    CDate(DateFin)
    Dernière modification par AlainTech ; 14/05/2013 à 06h45. Motif: Balises [code]

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Par défaut
    Très bonne remarque ajoutée par rdurupt

    Pour le format d'une colonne, tu peux faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Columns("A:A").Select
    Selection.NumberFormat = "dd/mm/yyyy"
    Mais utilises quand même le convertisseur CDate() pour pouvoir comparer les dates

  6. #6
    Membre averti
    Femme Profil pro
    etudiante
    Inscrit en
    Avril 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Avril 2013
    Messages : 20
    Par défaut
    Salut les amis,
    j'ai essayé tous que vous m'avez donné et la ligne 20 qui est maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stock = CDate("" & Cells(1, 5).Value)
    Renvoie toujours le meme message d'erreur ( une erreur d'exécution'13', Incompatibilité de type )

    Toutefois ave vous compris ma problématique et ce que je dosi sortir comme informations si oui je veux bien que vous me proposez des solutions si mon code est incorrigeable .

    Merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] comparaison de deux dates dans un ordre sql
    Par opeo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/03/2007, 14h34
  2. comparaison de deux dates
    Par gloglo dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 16/01/2007, 13h39
  3. Comparaison entre deux dates dans une table
    Par Biskot75 dans le forum Access
    Réponses: 6
    Dernier message: 19/09/2006, 11h16
  4. comparaison de deux dates
    Par colombe dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/07/2006, 18h44
  5. [VB6] Comparaison de deux dates dans une requête
    Par paradeofphp dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 07/06/2006, 19h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo