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 :

Variable Tableau - classement par ordre chronologique [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Ingenieur Projet
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Variable Tableau - classement par ordre chronologique
    Bonjour,

    Voila j'ai un tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim Tableau_Date() As String
    ReDim Tableau_Date(1 To 5, 1 To 3)
    Le tableau a donc 5 entrées pour 3 colonnes et prend les valeurs comme ci-dessous :

    tableau_Date(i, 1) = "Jour"
    tableau_Date(i, 2) = "Mois"
    tableau_Date(i, 3) = "Année"

    et je voudrais en bouclais sur les 5 lignes du tableau déterminer la date la plus récentes.

    Mais je ne sais pas comment m'y prendre.

    une idée ?
    Merci d'avance.
    Agd

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Res As Long
    Res = 1
    For i = 2 To 5
        If DateSerial(tableau_Date(i, 3), tableau_Date(i, 2), tableau_Date(i, 1)) > DateSerial(tableau_Date(Res, 3), tableau_Date(Res, 2), tableau_Date(Res, 1)) Then Res = i
    Next i
    Debug.Print "La date la plus récente est " ; tableau_Date(Res, 1) ; "/" ; tableau_Date(Res, 2) ; "/" ; tableau_Date(Res, 3)
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    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
    29
    30
    31
    32
    33
    34
    35
    Enum ConAdo
        adBstr = 8
        adBoolean = 11
        adInteger = 3
        adUnsignedTinyInt = 17
        adDate = 7
        adDouble = 5
        adSingle = 4
    End Enum
     
     
    Sub test()
    With CreateObject("ADODB.Recordset")
        .Fields.Append "Date", adDate
        .Fields.Append "Jour", adInteger
        .Fields.Append "Mois", adInteger
        .Fields.Append "Année", adInteger
        .Open
        .AddNew '01/12/2017
            .Fields("Jour") = 1
            .Fields("Mois") = 12
            .Fields("Année") = 2017
            .Fields("Date") = DateSerial(.Fields("Année"), .Fields("Mois"), .Fields("Jour"))
        .Update
        .AddNew '01/04/2017
            .Fields("Jour") = 1
            .Fields("Mois") = 4
            .Fields("Année") = 2017
            .Fields("Date") = DateSerial(.Fields("Année"), .Fields("Mois"), .Fields("Jour"))
        .Update
        .Sort = "date"
        .MoveFirst
        Debug.Print .Fields("Jour"), .Fields("Mois"), .Fields("Année"), .Fields("Date")
       End With  
    End Sub
    Dernière modification par Invité ; 16/10/2017 à 16h00.

  4. #4
    Membre à l'essai
    Profil pro
    Ingenieur Projet
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Merci Menhir
    Je ne connaissais pas la fonction DateSerial.

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Ca aurait put aussi bien marcher avec tableau_Date(i, 3) * 500 + tableau_Date(i, 2) * 40 + tableau_Date(i, 1).
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

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

Discussions similaires

  1. classement par ordre chronologique
    Par leara500 dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/08/2015, 11h29
  2. Réponses: 4
    Dernier message: 25/02/2013, 11h41
  3. Réponses: 11
    Dernier message: 18/03/2011, 16h10
  4. Réponses: 1
    Dernier message: 06/09/2009, 09h11
  5. URGENt: recherche dans un tableau trié par ordre alphabetiqu
    Par JulPop dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/02/2005, 17h21

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