Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1691 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Existe-t'il une fonction capable de trier un tableau?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] Existe-t'il une fonction capable de trier un tableau?

n°1752397
OMar92
Posté le 27-06-2008 à 16:56:21  profilanswer
 

Salut,
 
Je cherche à trier un tableau (sans passer par son déchargement sur la feuille Excel puis par un tri et un rechargement)...
 
Par exemple voici mon tableau à sa définition :
 
Dim Tableau(5)
 
Tableau(1)=10
Tableau(2)=35
Tableau(3)=20
Tableau(4)=2
Tableau(5)=12

 
Après la fonction (si elle existe bien sur), mon tableau devrait ressembler à ça :
 
Tableau(1)=2
Tableau(2)=10
Tableau(3)=12
Tableau(4)=20
Tableau(5)=35

 
Merci par avance pour vos lumières.

mood
Publicité
Posté le 27-06-2008 à 16:56:21  profilanswer
 

n°1752423
kiki29
Posté le 27-06-2008 à 17:20:54  profilanswer
 
n°1752432
OMar92
Posté le 27-06-2008 à 17:32:24  profilanswer
 

Merci Kiki29, mais c'est plus une fonction qu'une méthode que je cherche (à la rigueur, le plus simple, c'est encore de décharger le tableau, de le trier et de le recharger, mais ce n'est probablement pas le plus rapide, pas le plus pratique et surtout pas le plus satisfaisant d'un point de vue programmation).
 
J'ai effectué des recherches avant de poster la question, et en fait, pour ceux qui connaissent, c'est plus quelque chose proche du ARRAY.SORT de VB ( http://msdn.microsoft.com/fr-fr/li [...] S.80).aspx ).
Seulement, apparement, VBA ne reconnais pas la fonction ARRAY.SORT de VB (ou alors, je me suis mal débrouillé, ou j'ai oublié des éléments).

n°1752440
kiki29
Posté le 27-06-2008 à 17:45:04  profilanswer
 

Tu le dis toi même tu es sous VBA, donc oublie NET, d'autant plus que si tu avais regardé le lien donné , tu aurais vu que l'implémentation en VBA est quasiment directe quelque soit l'algo choisi


Message édité par kiki29 le 27-06-2008 à 17:52:01
n°1752456
kiki29
Posté le 27-06-2008 à 18:13:48  profilanswer
 

A titre d'exemple


Option Explicit
 
Sub Tst()
Dim Tableau(5) As Long
Dim i As Long
 
    Tableau(1) = 10
    Tableau(2) = 35
    Tableau(3) = 20
    Tableau(4) = 2
    Tableau(5) = 12
 
    BubbleSort Tableau
 
    For i = 1 To 5
        Debug.Print i, Tableau(i)
    Next i
End Sub
 
Private Sub BubbleSort(t() As Long, _
                       Optional ByVal loBound As Long = -1, _
                       Optional ByVal upBound As Long = -1)
 
Dim i As Long, tmp As Long
Dim k As Long, test As Long
 
    If loBound = -1 Then
        loBound = LBound(t())
    End If
    If upBound = -1 Then
        upBound = UBound(t())
    End If
 
    k = upBound
    Do
        test = 0
        For i = loBound To k - 1
            If t(i) > t(i + 1) Then
                test = i
                tmp = t(i)
                t(i) = t(i + 1)
                t(i + 1) = tmp
            End If
        Next i
        k = test
    Loop While test
End Sub


Message édité par kiki29 le 27-06-2008 à 18:30:57

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Existe-t'il une fonction capable de trier un tableau?

 

Sujets relatifs
SQL Server - BULK INSERT et VBA[VBA] Déplacer données Table
[Résolu] - [Php] - Fonction Issetservice SOAP - pb retour tableau
[VBA] Ouvrir fichier Excel - même répertoire[VBA / Excel] Aide sur une macro a programmer
[RESOLU] [ACCESS] Parcour de tables et récupération de ligne[VBA] [Résolu] Comment récupérer la formule d'une cellule ??
Parcourir des dossiers et sous-dossiers en VBAVBA Excel Supprimer des lignesl
Plus de sujets relatifs à : [VBA] Existe-t'il une fonction capable de trier un tableau?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR