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 :

Trier une colonne par date


Sujet :

Macros et VBA Excel

  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 34
    Points
    34
    Par défaut Trier une colonne par date
    Bonjour a tous,

    Je vous explique un peu mon problème. Je travaille avec 2 fichiers excel. L'un doit aller récupérer des données dans l'autre.
    Et pour cela j'ai besoin de trier une colonne afin de bien récupérer les valeurs. En gros ma colonne comporte une date et une heure de ce type :
    JJ/MM/AAAA HH:MM

    Il faut donc que ma colonne soit triée dans l'ordre croissant. De plus j'ai un bouton ajouté qui m'ajoute des dates et heure de ce type. Comment pourrai-je faire pour que lorsque j'ajoute ca aille se placer au bon endroit dans cette liste.

    ----------------------------------------------------------------------------
    2ème probleme

    La c'est un peu plus compliqué a expliquer. En gros j'ai ca

    Semaine............. Date
    01...................02/01/2006
    01...................02/01/2006
    01...................03/01/2006
    01...................03/01/2006
    01...................03/01/2006
    01...................04/01/2006
    01...................04/01/2006

    En fait il faut que je compte combien j'ai de jour différent pour chaque semaine. Ici en l'occurence j'en ai 3. En gros est ce qu'il existe un truc du genre distinct en sql mais en VB.

    -----------------------------------------------------------------------
    Derniere question :
    Lorsqu'on se situe sur une cellule, quelle est la commande pour trouver sa position. En gros savoir si c'est A1, B6 avoir ce chemin la quoi.


    Merci bcq et dsl pour toutes ces questions
    Bye

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par foobar42
    Bonjour a tous,

    Je vous explique un peu mon problème. Je travaille avec 2 fichiers excel. L'un doit aller récupérer des données dans l'autre.
    Et pour cela j'ai besoin de trier une colonne afin de bien récupérer les valeurs. En gros ma colonne comporte une date et une heure de ce type :
    JJ/MM/AAAA HH:MM

    Il faut donc que ma colonne soit triée dans l'ordre croissant. De plus j'ai un bouton ajouté qui m'ajoute des dates et heure de ce type. Comment pourrai-je faire pour que lorsque j'ajoute ca aille se placer au bon endroit dans cette liste.

    ...
    Pour le tri , tu peu t'inspirer de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim r As Range ' Plage
    ' Definie la Zone à trier
    ' ligne à adapter...
    Set r = Range("A1").CurrentRegion
    r.Sort Key1:=r.Columns(2), Order1:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    et à l'insertion de nouvelle donnée, peu être le plus simple c'est de "re-trier"... sinon montre nous ton code d'insertion...


    Pour le reste merci de lire : les règles du forum,
    et aussi ce document, plus particuliérement : II-2. Lisibilité des sujets : , ces questions n'ayant plus grand chose à voir avec le titre de la discussion...(PS: Pour mémoire tu peu éditer ton premier message...)

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 34
    Points
    34
    Par défaut
    Voila mon code enfin plutot le code de celui qui avait commencé le projet avant moi. En gros il faut que lorsque j'ajoute une valeur elle soit triée en fonction de la colonne D c'est a dire la date et l'heure (mois/jour/l'année heure:minutes. En gros ça a cette tête la : (Un exemple) 02/21/2006 13:36
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        Range("D" & line).Value = month & "/" & day & "/" & year & " " & heureRecep
        Range("E" & line).Value = blBrl
        Range("F" & line).Value = qte
     
        day = Left(dateLib, 2)
        month = Mid(dateLib, 4, 2)
        year = Mid(dateLib, 7)
     
        Range("G" & line).Value = month & "/" & day & "/" & year & " " & heureLib
        Range("H" & line).Value = pdtCR
        Range("I" & line).Value = control
        Range("K" & line).Value = comment
    Merci

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Faudrait savoir...
    Citation Envoyé par foobar42
    En gros ma colonne comporte une date et une heure de ce type :
    JJ/MM/AAAA HH:MM
    Citation Envoyé par foobar42
    ... elle soit triée en fonction de la colonne D c'est a dire la date et l'heure (mois/jour/l'année heure:minutes.
    month, day et year ont l'air (on ne voit pas la déclaration) d'être des variables.
    Il faudrait que tu apprennes à préfixer tes éléments (variables et contrôles) et ne pas utiliser des noms réservés.

    De plus, tu initialises tes variables après les avoir utilisées une première fois.
    Curieux.

    Il serait grand temps que tu te mettes un peu à l'étude du langage plutôt que de venir ici pour chaque question que tu te poses.

    Sais-tu comment Excel gère les dates et heures?
    Je pense que tu cherches bien compliqué là où c'est très simple.
    Intéresse-toi à DateSerial et TimeSerial.

    Bref, cherche par toi-même, étudie et fais des essais avant de venir nous demander de tout faire à ta place.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 34
    Points
    34
    Par défaut
    Salut

    Je ne savais pas que c'était des noms réservés mais comme je l'ai dit c'est la personne d'avant qui a fait ca et comme ca a l'air de marcher je n'ai rien changé. Sinon pour le fait d'utiliser 2fois les memes variables c'est normal c'est l'heure qui change.

    Je vais m'intéresser a DateSerial et TimeSerial mais bon j'avais déja cherché de mon coté en faisant des boucles et ainsi de suite pour arrivé a l'endroit désiré mais ca me paraissait compliqué pour surement pas grand chose donc je me suis dit que peut etre excel pouvait le faire tout seul étant donné que dans l'onglet outil il me semble il ya un bouton trier les données.

    Voila ce n'est pas trop me genre de venir poster a tout va d'habitude je recherche par moi meme mais la étant donné que je n'ai pas le net la bas et que je ne peux pas tester ché moi je préfere demander l'avis de personne avc de l'expérience plutot que de prendre des fonctions sur le net arrivé le lendem1 et que ca marche pas et me retrouver bloqué.

    Merci

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Pour trier par date, et après avoir eu pas mal de problèmes, j'ai fini par procéder comme suit : Je convertis ma colonne de dates en nombre sans décimale, je trie et je reformate ma colonne en date. C'est lourd mais ça donne le résultat excompté
    Si tu le fais par les dates, tu risques d'avoir
    01/01/06
    01/03/06
    02/02/06
    etc.
    Exemple si les dates sont dans la colonne A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Columns("A:A").Select
        Selection.NumberFormat = "0"
        DoEvents
        Cells.Select
        Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
        DoEvents
        Columns("A:A").Select
        Selection.NumberFormat = "dd/mm/yyyy"
    Header:=xlYes si tu as un entête de colonne

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 34
    Points
    34
    Par défaut
    Ok merci je vais tenter ca. En tout cas c'est surement moins lourd que de faire des boucles a tout va pour arriver au bon endroit.
    Merci

Discussions similaires

  1. [XL-2007] filtrer une colonne par date en VBA
    Par pierreTarek dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/07/2012, 13h08
  2. Trier une liste par date
    Par autre dans le forum C
    Réponses: 10
    Dernier message: 12/02/2012, 22h16
  3. Réponses: 1
    Dernier message: 22/10/2008, 18h08
  4. trier une colonne par date
    Par Patnel dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/06/2008, 08h30
  5. trier une liste par colonnes
    Par Sniper37 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 26/10/2007, 10h19

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