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 :

[E-02] Tableau :tri horizontal


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Par défaut [E-02] Tableau :tri horizontal
    Bonjour,
    Sur la feuille "Formations" de mon fichier, j'ai un tableau composé de "x" colonnes Atelier.
    Pour chacune de ces colonnes, j'ai un nombre quelconque de formations. Ce tableau alimente 2 listes déroulantes "Ateliers" et "formations"

    Le code suivant permet pour un atelier de classer par ordre alphabétique les formations correspondantes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Range(Cells(2, colonne), Cells(nbligne + 1, colonne)).Select
            Selection.Sort Key1:=Cells(2, colonne), Order1:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
    Mon problème concerne le tri en ligne pour le classement alphabétique des ateliers (ligne d'en-tête) avec
    bien sûr répercution sur les formations concernées car je ne trouve pas dans l'aide de possibilité de faire ce genre de tri.

    Merci de votre aide

  2. #2
    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
    Par défaut
    En fait tu veux classer tes colonnes par ordre alphabétique de leurs en-têtes.
    Déjà une indication :
    Si tu utilises un range, tu as un tableau à deux dimensions
    Ainsi, Range("A1:L1").value est un tableau à deux dimensions
    Pour le classer par ordre alpha, tu as le code ici, la première partie.
    Il ne te reste plus qu'à déplacer les colonnes.
    Pour faire ça je pense qu'il est préférable d'utiliser l'ordre alpha inverse et d'insérer dans l'ordre toutes les colonnes avant la colonne 1. Ainsi la dernière colonne insérée à gauche est la première par ordre alpha. Ce qui donne ç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
    18
    19
    20
    21
    22
    23
    24
    25
    Dim Tablo As Variant, Tempo As Variant, i As Long, j As Long, NbCol As Integer
        With Worksheets("Feuil1") '.Activate 'à défaut d'instancier la feuille
            NbCol = .Cells(1, Columns.Count).End(xlToLeft).Column
            Tablo = Application.WorksheetFunction.Transpose(.Range(Cells(1, 1), Cells(1, NbCol)).Value)
        End With
    'triAlpha
        For i = UBound(Tablo) To 1 Step -1
            For j = UBound(Tablo) To 1 Step -1
                If Tablo(i, 1) < Tablo(j, 1) Then
                    Tempo = Tablo(i, 1)
                    Tablo(i, 1) = Tablo(j, 1)
                    Tablo(j, 1) = Tempo
                End If
            Next j
        Next i
        'Recherche de la colonne "suivante" du tablo dans la feuille de calculs pour...
        '... la coller avant la colonne 1
        Dim c As Range
        With Worksheets("Feuil1").Range(Cells(1, 1), Cells(1, NbCol))
            For i = 1 To UBound(Tablo)
                Set c = .Find(Tablo(i, 1))
                Columns(c.Column).Cut
                Columns(1).Insert Shift:=xlToRight
            Next
        End With
    Bon we

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

Discussions similaires

  1. [XL-2003] Remplissage tableau avec tri horizontal
    Par MARGAR dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 08/03/2014, 08h47
  2. Réponses: 6
    Dernier message: 05/01/2006, 15h23
  3. tableau trié
    Par devdébuto dans le forum C
    Réponses: 3
    Dernier message: 07/11/2005, 19h00
  4. [Tableau][TRI] Tri d'un String[]
    Par zakir dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 17/03/2005, 18h31
  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, 18h21

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