Tri dynamique

Tri dynamique - VB/VBA/VBS - Programmation

Marsh Posté le 06-12-2012 à 19:47:12    

Bonjour,
 
J'aurai besoin de votre aide pour une opération de tri automatisé sous Excel.
 
J'ai deux colonnes comme ceci :
4 d
8 h
6 f
2 b
5 e
7 g
9 i
1 a
3 c
5 ee
9 ii
1 aa
7 gg
4 dd
8 hh
6 ff
3 cc
 
 
A gauche c'est la date | A droite c'est l'évènement.
J'aimerais créer à côté deux autres colonnes où ces données sont triées par ordre croissant de date.
 
Problèmes :
* Les évènements et dates peuvent changer => le tri doit se mettre à jour automatiquement.
* Il peut y avoir deux évènements par date => impossible de faire =INDEX(colonne1;EQUIV(date_i;colonne2;0))
 
SVP, Comment pourrais-je faire sans utiliser de macro?
SVP, Si je dois utiliser une macro, comment créer un bouton pour la lancer?
 
Merci d'avance !


Message édité par gilou le 06-12-2012 à 23:58:29
Reply

Marsh Posté le 06-12-2012 à 19:47:12   

Reply

Marsh Posté le 06-12-2012 à 19:49:19    

Oups c'est un forum "XSL" :P
Je mets ça où ?
 
Désolé...

Reply

Marsh Posté le 07-12-2012 à 08:05:02    

Bonjour,
 
En fait c'est juste un tri.
Je le met dans une fonction pour que ce soit dynamique:
 

Citation :


Public Function sort_col(ByRef rRange As Range) As Variant
 
Dim i As Integer
Dim flag_sorted As Boolean
Dim temp As Variant
Dim save1 As Variant, save2 As Variant
 
temp = rRange.Value
 
Do
    flag_sorted = True
    For i = LBound(temp, 1) To UBound(temp, 1) - 1
        If temp(i + 1, 1) < temp(i, 1) Then
            save1 = temp(i, 1)
            save2 = temp(i, 2)
            temp(i, 1) = temp(i + 1, 1)
            temp(i, 2) = temp(i + 1, 2)
            temp(i + 1, 1) = save1
            temp(i + 1, 2) = save2
            flag_sorted = False
        End If
    Next i
Loop Until flag_sorted = True
 
sort_col = temp
 
End Function


 
J'ai la flemme de coder autre chose qu'un bubble pour le sort  :o  
Ta fonction est une matrice dans tes 2 nouvelles colonnes (shift + enter).
Tu sélectionnes ton tableau de 2 col en argument de la fonction.
 
Il doit y avoir un moyen de le faire directement en Excel (?). Si quelqu'un connait ca m’intéresse  :jap:  

Reply

Marsh Posté le 10-12-2012 à 01:09:12    

Merci pour la réponse ! :)
 
Oui oui c'est "juste" un tri.
Mais comme tu dis ce serait sympa de pouvoir le faire directement sous Excel. :)
 
Merci pour ta programmation.
Bon je ne comprends pas tout... mais je dois prendre tout ça doucement pour me faire au langage et à la logique que tu as écrite.
 
Et si quelqu'un à un "truc" en direct dans les cellules Excel, on est preneurs! :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed