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 :

Tri ascendant ou descendant en fonction de la quinzaine [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Inscrit en
    janvier 2006
    Messages
    983
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 983
    Points : 205
    Points
    205
    Par défaut Tri ascendant ou descendant en fonction de la quinzaine
    Bonjour,

    J'ai une liste de commande une date de commande et un prix.
    Je cherche à les classer par ordre ascendant sur le prix lorsque la date de saisie est dans la première quinzaine.
    Puis par ordre descendant lorsqu'il s'agit de la deuxième quinzaine.
    Comment procéder.

    J'ai pour l'heure une clé de regroupement à 1 ou 2 si le jour est en dessous de 16 ou au dessus de 16.

    Puis j'ai tenté ceci dans ma macro mais il ne veut pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    BDD_Forecast.Sort.SortFields.Add Key:=Range(Cells(2, 28), Cells(ligne_BDD, 28)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 'Quinzaine de livraison
        If (BDD_Forecast.Cells(i, 28).Value = 1) Then 'temps de mh standard ascendant 1ère quinzaine et descandant 2ème quinzaine
            BDD_Forecast.Sort.SortFields.Add Key:=Range(Cells(2, 14), Cells(ligne_BDD, 14)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        Else
            BDD_Forecast.Sort.SortFields.Add Key:=Range(Cells(2, 14), Cells(ligne_BDD, 14)), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
        End If

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    avril 2016
    Messages
    7 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : avril 2016
    Messages : 7 565
    Points : 12 741
    Points
    12 741
    Par défaut
    Bonjour

    ton code ne permet pas de savoir que qu'est cette variable i dans
    Je veux espérer qu'elle n'est pas le facteur d'itération d'une boucle For .. to ... Next
    Qu'est-elle ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Membre actif
    Inscrit en
    janvier 2006
    Messages
    983
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 983
    Points : 205
    Points
    205
    Par défaut
    Merci pour ton retour, cela m'a débloqué le fait de me parler de cette variable i.

  4. #4
    Membre éprouvé
    Inscrit en
    septembre 2007
    Messages
    648
    Détails du profil
    Informations forums :
    Inscription : septembre 2007
    Messages : 648
    Points : 1 052
    Points
    1 052
    Par défaut
    Bonjour,
    Citation Envoyé par leloup84 Voir le message
    Je cherche à les classer par ordre ascendant sur le prix lorsque la date de saisie est dans la première quinzaine.
    Il me semble qu'ainsi cela devrait répondre à ton vouloir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        BDD_Forecast.Sort.SortFields.Add Key:=Range(Cells(2, 28), Cells(ligne_BDD, 28)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
        BDD_Forecast.Sort.SortFields.Add Key:=Range(Cells(2, 14), Cells(ligne_BDD, 14)), SortOn:=xlSortOnValues, Order:=IIf(Day(Date) <= 16, xlAscending, xlDescending), DataOption:=xlSortNormal  'Quinzaine de livraison asc/desc
    Cela élimine le souci du 'i' noté par unparia que je salue.

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

Discussions similaires

  1. [CR XI] Tri ascendant ou descendant en fonction de la quinzaine
    Par leloup84 dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 02/12/2019, 19h09
  2. Réponses: 4
    Dernier message: 06/03/2007, 14h35
  3. [XSLT] Tri ascending OK, Tri descending KO
    Par SONY30 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 31/10/2006, 18h39
  4. Tri ascendant et decendant d'un dbgrid
    Par nou366 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 07/05/2006, 10h18
  5. INSERTION / tri ascendant ou descendant, ou mettre a la fin
    Par oravelon dans le forum Langage SQL
    Réponses: 5
    Dernier message: 05/08/2005, 12h15

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