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


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    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
    Bonjour

    ton code ne permet pas de savoir que qu'est cette variable i dans
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Cells(i, 28)

    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
    Merci pour ton retour, cela m'a débloqué le fait de me parler de cette variable i.

  4. #4
    Membre expérimenté
    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.

###raw>template_hook.ano_emploi###