Comment trier un tableau ?

Comment trier un tableau ? - VB/VBA/VBS - Programmation

Marsh Posté le 30-11-2006 à 21:40:59    

Bonsoir,
 
Voila j'ai un problème :
 
J'ai un tableau de 10 lignes et 1 colone en A de valeurs non trié. Et comment en B (par exemple) les avoir triées ?
Je sais que c'est simple et toussa mais j'ai pas trouver un programme simple (un tuto par exemple) qui l'explique.
 
http://pix.nofrag.com/26/f3/6cbac1c4550dbc1d1a4a39a9484d.jpg
PS : en plus, en recopiant le tableau je me suis trompé, j'ai mis 2 fois 30, mais c'est pas important.
 
Il me faut surtout un programme qui le fasse mais si je pouvais le comprendre ca serai un plus :)
 
Et qu'il soit performant ou non est secondaire.
 
Merci d'avance

Reply

Marsh Posté le 30-11-2006 à 21:40:59   

Reply

Marsh Posté le 30-11-2006 à 21:45:36    

Je pige pas... Excel le fait tout seul ! Tu copie ta colonne, puis tu tries. Et si tu enregistres sous forme de macro ces actions, ça te fera le programme

Reply

Marsh Posté le 30-11-2006 à 21:52:43    

enfaite j'ai trouvé cela qui est super proche de selon d'ont j'ai besoin :
 
http://mypage.bluewin.ch/w.stucki/Programmes.htm#Tri
 
Mais eux c'est dans un tableau assez "complexe" ya pas moyens de mettre ca plus en forme comme j'en ai besoin.
 
Sinon oui excel le fait tout seul, mais crois bien que je fais pas ça par plaisir de me compliquer la vie, c'est que très bientot j'ai un devoir noté et un exercice type du test serai d'ecrire un programme qui trie des valeurs d'une colone dans une autre... :/

Reply

Marsh Posté le 30-11-2006 à 21:54:56    

Avec les fonctions Excel, ça prend deux lignes :D

Reply

Marsh Posté le 30-11-2006 à 21:57:47    

:/ bah je le ferais si j'arrive pas a le faire tout seul mais bon faudra pas que j'esper trop avoir tout les points

Reply

Marsh Posté le 01-12-2006 à 02:33:49    

Méthodes de Tris VB6 à adapter en VBA: http://docvb.free.fr/vbplus/Tris/Tri.php


Message édité par kiki29 le 01-12-2006 à 03:54:52
Reply

Marsh Posté le 01-12-2006 à 07:12:43    

Ah merci, j'ai reussi a faire ceci avec le model de trie par bulle :
 

Code :
  1. Sub tri_bulle()
  2. Dim tableau3(10) As Single
  3. Dim i As Integer
  4. Dim j As Integer
  5. Dim a As Single
  6. For i = 1 To 10
  7.     tableau3(i) = Cells(i)
  8. Next i
  9. For i = 1 To 10 - 1
  10.     For j = 1 To 10 - i
  11.         If tableau3(i) > tableau3(i + 1) Then
  12.             a = tableau3(i + 1)
  13.             tableau3(i + 1) = tableau3(i)
  14.             tableau3(i) = a
  15.         End If
  16.     Next j
  17. Next i
  18. For i = 1 To 10
  19.     Cells(i, 2) = tableau3(i)
  20. Next i
  21. End Sub


 
Mais bien sur ca marche pas

Reply

Marsh Posté le 01-12-2006 à 07:46:52    

j'ai pas compris le j+1 ?

Reply

Marsh Posté le 01-12-2006 à 07:49:10    

If tableau3(i) > tableau3(i + 1) Then
            a = tableau3(i + 1)
            tableau3(i + 1) = tableau3(i)
            tableau3(i) = a
mets des j partout à la place des i

Reply

Marsh Posté le 01-12-2006 à 07:50:50    

sais tu faire du "pas à pas" dans vbe ?

Reply

Marsh Posté le 01-12-2006 à 07:50:50   

Reply

Marsh Posté le 01-12-2006 à 07:56:03    

cells(i,1) à la place de cells(i)

Reply

Marsh Posté le 01-12-2006 à 07:56:05    

non
 

Code :
  1. Sub tri_bulle()
  2. Dim tableau3(10) As Single
  3. Dim i As Integer
  4. Dim j As Integer
  5. Dim a As Single
  6. For i = 1 To 10
  7.     tableau3(i) = Cells(i)
  8. Next i
  9. For i = 1 To 10 - 1
  10.     For j = 1 To 10 - i
  11.         If tableau3(j) > tableau3(j + 1) Then
  12.             a = tableau3(j + 1)
  13.             tableau3(j + 1) = tableau3(j)
  14.             tableau3(j) = a
  15.         End If
  16.     Next j
  17. Next i
  18. For i = 1 To 10
  19.     Cells(i, 2) = tableau3(i)
  20. Next i
  21. End Sub

Reply

Marsh Posté le 01-12-2006 à 08:33:02    

Bonjour,
A part ce que seniorpapou t'a dèjà dit, et que tu n'a pas fait, ca marche chez moi.
Quand tu complétes ton tableau, dans ta boucle il faut mettre
  tableau3(i)=cells(i,1)

Reply

Marsh Posté le 01-12-2006 à 09:49:16    

lol :/ ca marche la
 
tout cela a cause de ca :(
 
mais merci en tout cas :d

Reply

Sujets relatifs:

Leave a Replay

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