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 en fonction d'une autre colonne


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 27
    Points : 22
    Points
    22
    Par défaut Trier une colonne en fonction d'une autre colonne
    Salut à tous,

    Après avoir cherché je n'ai pas trouvé de solutions à mon problème et je n'ai pas bien compris la manière d'utiliser la fonction sort.
    En gros j'ai une colonne client de ce type avec des éléments de ce type (37637_SARLXXX)

    je dois mettre en place 2 boutons, un pour trier en fonction du code client (première partie de la colonne) jusque là ça va.

    Le deuxième pour trier en fonction du libellé (2eme partie). Du coup j'ai crée une colonne caché plus loin dans l'onglet qui ne récupère que les libellés et je voudrais trier ma colonne client en fonction de ma colonne libellé

    J'avais pensé à un truc comme ça
    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
     
     
    Sub Tri()
     
    dim z1 as range
    dim z2 as range
    dim tot as range
     
    set z1= range("F15:F" & range("N15").End(xldown).row)
    set z2= range("BB15:BB" & range("N15").End(xldown).row)
    set tot = Union(z1,z2)
     
    tot.select
     
    selection.sort Key1:=z2, Order:=xlAscending
     
    end Sub
    z1 C'est ma colonne client et z2 ma colonne de libellé.
    Mais quand j’exécute ça il me dit que la fonction de peut s'utiliser sur des sélections multiples. Bref je ne sais pas comment lui dire de trier en fonction des libellés.

    Merci d'avance pour votre aide.

  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 040
    Points
    20 040
    Par défaut
    bonjour,

    pour éviter des sélections multiple place ta colonne libellé à côté de la colonne code client..

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Oué j'y avais pensé mais ça m'obligerait à modifier énormément dans mon code (pour les autres fonctions autour) et d'autre part, les colonnes sont remplies à partir d'une extraction d'un cube essbase, donc je peux pas vraiment intégrer une colonne "technique" au milieu. Ça gênerait pour la récupération et l'envoie des données dans le cube.

  4. #4
    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 040
    Points
    20 040
    Par défaut
    Je comprends pas tu ne trie qu'une colonne de ton tableau tu laisse les autres en l'état ??


    sinon re-écrire ton code cela te permettrai de supprimer les .select , Seclection , activeSheet.. , range sans référence de feuille....

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Quand je parle de réécrire mon code, c'est pour toutes les procédures autour qui utilisent Essbase. Tout déplacer d'une colonne générerait énormément de modification.

    Ensuite je ne trie qu'une colonne car en fait j'ai des colonnes avec des fusions et d'autre sans, du coup le tri ne fonctionne pas. Je trie donc une colonne et ensuite avec un rafraichissement des données provenant d'essbase, les autres colonnes vont se mettre à jour.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Bon il semblerait que ce je veuille faire n'est pas possible (même manuellement sans macro).
    Du coup j'ai copié collé la colonne Client à côté de celle des libellés, j'ai trier et j'ai re copié collé.
    Ensuite rafraichissement Essbase et c'est tout bon!

    merci...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/11/2012, 15h49
  2. trier une table en fonction d'une autre
    Par boss_gama dans le forum Langage SQL
    Réponses: 7
    Dernier message: 18/10/2009, 11h17
  3. Réponses: 1
    Dernier message: 10/02/2008, 19h56
  4. [MySQL] Trier les résultats en fonction d'une colonne ordre
    Par eclipse012 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 05/01/2007, 13h59
  5. Contraite NULL sur une colonne en fonction d'une autre colon
    Par speedy1496 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2004, 19h29

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