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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Tri dynamique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tri dynamique

n°2167138
Le Roi New​bie
Posté le 06-12-2012 à 19:47:12  profilanswer
 

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
mood
Publicité
Posté le 06-12-2012 à 19:47:12  profilanswer
 

n°2167139
Le Roi New​bie
Posté le 06-12-2012 à 19:49:19  profilanswer
 

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

n°2167156
tarteflamb​ee
Posté le 07-12-2012 à 08:05:02  profilanswer
 

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:  

n°2167408
Le Roi New​bie
Posté le 10-12-2012 à 01:09:12  profilanswer
 

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! :)


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

  Tri dynamique

 

Sujets relatifs
Tri tableau 2 dimensionsTableau dynamique
[résolu] taper texte dans champs text et affichage dynamiqueCréation dynamique montage vidéos
Newsletter dynamique via boucle phpAllocation dynamique : question vague
macro Excel pour un graphique dynamiqueComment compter le nombre de lignes dans un tableau croisé dynamique ?
[vbs] nom de variable dynamiqueMacro tableau croisé dynamique
Plus de sujets relatifs à : Tri dynamique


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