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 :

la fonction Max/Min sur des dates


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Points : 17
    Points
    17
    Par défaut la fonction Max/Min sur des dates
    Bonjour,

    j'ai trois colonnes: colonne IV contient l'identifiant
    colonne AW contient des dates valeur
    colonne IQ pour le résultat

    je suis passé par une collection de valeurs pour repèrer les mémes identifiants et ce que je cherche à faire c'est d'attribuer (dans la colonne AW) la date valeur la plus ancienne de cette collection de valeurs à toutes les cells(IQ) qui la compose.
    j'ai essayé avec des chiffres ça marche à la place des dates ça marche mais quands avec des dates la fonction min me renvoit toujours 0

    voilà mon code
    merci d'avance pour votre aide



    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 Ant_ID_2() As Variant
     
    Dim V_ID As String
     
    H = 2
    Do Until IsEmpty(Cells(H, "IV"))
        J = 2
        I = 0
        V_ID = Cells(H, "IV").Value
        ReDim Ant_ID_2(500)   '500 est la dimension de la collection de valeurs
           Do Until IsEmpty(Cells(J, "IV"))
     
            If Cells(J, "IV") = V_ID Then
                If IsDate(Cells(J, "AW")) = True Then
                    Ant_ID_2(I) = CDate(Cells(J, "AW"))
                 End If
            I = I + 1
            End If
     
        J = J + 1
        Loop
     
    Cells(H, "IQ") = Application.WorksheetFunction.Min(Ant_ID_2())
     
    H = H + 1
    Loop

  2. #2
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    SAlut
    Du devrais mettre ton code entre balise code, ca serait plus comprehensible

    A mon avis ton probelem vient de la fonction Min, et si tu ne la donne pas on aura du mal a te repondre
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    en fait j'ai pas de fonction Min
    j'ai due utilisé la fonction excel Min que j'ai appelée avec application.worksheetfunction
    voilà

    Mon probl en gros réside dans les dates mais quand je fais tourner ce code sur une colonne contenant des chiffres ça marchait

  4. #4
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    SAlut
    Je connaissais pas cette facon de faire avec les Functions integrées
    Par contre un petit Debug pas a pas avec un espion sur Ant_ID_2 t'aurait permis de remarquer qu'il etait rempli avec des valeur Date (#01/05/1980#) et ca Min ne le gere pas, il suffit de transformer le format date en Integer et le tour et joué (attention si il y a aussi des heures il faudra utiliser un Double)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ant_ID_2(I) = Cint(CDate(Cells(J, "AW"))) ' Utiliser CDbl() pour un format Date + Time
    Et voila

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. Réponses: 8
    Dernier message: 24/03/2015, 13h51
  2. [VB6] Requêtes en BDD sur des dates
    Par pom dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/11/2005, 14h04
  3. Index sur des dates?
    Par nicovmd dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 30/06/2005, 14h20
  4. analyse "périodes" basées sur des dates.
    Par Yorglaa dans le forum Oracle
    Réponses: 7
    Dernier message: 22/12/2004, 11h39
  5. Réponses: 9
    Dernier message: 17/01/2004, 10h51

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