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 :

Tri sous VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Par défaut Tri sous VBA
    Bonjour,
    Je dois trier des données sous VBA, je ne veux pas me servir de la fonction sous excel.
    Je veux utliser une fonction avec une variable (type tableau).
    Je sais qu'il existe une fonction qui permet de le faire (un trie par recurrence en nLog[n].
    Je ne suis pas intéressé par les tries artisanales ( n²) car trop long.
    Je l'ai utilisé, il y a quelques années, aujourd'hui, je ne la trouve pas.
    Pouvez-vous m'aider.
    Je continue ma recherche en paralléle...
    Je vous remercie
    Salutations
    Mousse

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    Tu peux utiliser une méthode de "tri rapide" ou "Quick Sort". Cherche avec ces mots.

    Cordialement,

    PGZ

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Par défaut TRIE
    Merci
    J'ai trouvé une procédure appelée TRIABULLE :

    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
    Public Sub TriABulle(tabLong() As Long)
    Dim lgFor1 As Long, lgFor2 As Long
    Dim lgTmp As Long, lgMin As Long
    lgMin = LBound(tabLong)
    ' Parcourt l'ensemble des éléments du tableau
    For lgFor1 = UBound(tabLong) To lgMin Step -1
    ' Parcourt l'ensemble des éléments non triés du tableau
        For lgFor2 = lgMin + 1 To lgFor1
            If tabLong(lgFor2 - 1) > tabLong(lgFor2) Then
    ' Echange de place entre deux éléments
                lgTmp = tabLong(lgFor2 - 1)
                tabLong(lgFor2 - 1) = tabLong(lgFor2)
                tabLong(lgFor2) = lgTmp
            End If
        Next lgFor2
    Next lgFor1
    End Sub
    Est-elle rapide??? je ne sais pas, je dois tester... mais elle ne ressemble pas du tout à la fonction que j'ai utilisé il y a quelques années...
    Merci
    à bientôt

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    L'efficacité d'un tri dépend de ce qui est à trier. Voir notemment l'étude des cas défavorables. En moyenne les méthodes de type QuickSort sont très rapides. Tu trouveras sur le net plein d'études sur les méthodes de tri et la mesure de leur efficacité.
    Pour le quicksort, regarde par exemple sur [ame="http://fr.wikipedia.org/wiki/Tri_rapide"]wiki[/ame].

    Bon courage,

    PGZ

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

Discussions similaires

  1. Insertion documents word dans champ objet OLE sous VBA
    Par frankouche dans le forum Access
    Réponses: 4
    Dernier message: 20/12/2006, 21h35
  2. Cases à cocher sous VBA
    Par dran dans le forum Général VBA
    Réponses: 4
    Dernier message: 15/11/2004, 21h50
  3. Réponses: 8
    Dernier message: 07/10/2004, 11h08
  4. (VBA-A] Requete access sous VBA
    Par vanima dans le forum VBA Access
    Réponses: 12
    Dernier message: 20/07/2004, 16h07
  5. Syntaxe PARAMETERS pour requête sous VBA
    Par GAGNON dans le forum VBA Access
    Réponses: 3
    Dernier message: 28/11/2003, 11h39

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