Je n'arrive pas à faire fonctionner se tri
Résolu/Fermé
alexandre13 200
Messages postés
22
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
29 mai 2009
-
13 mai 2009 à 12:03
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 13 mai 2009 à 14:02
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 13 mai 2009 à 14:02
A voir également:
- Je n'arrive pas à faire fonctionner se tri
- Comment faire fonctionner chromecast - Guide
- Tri excel - Guide
- Logiciel de tri de photos - Guide
- Erreur de tri dans l'agence de distribution ✓ - Forum Consommation & Internet
- Excel tri par date ne fonctionne pas ✓ - Forum Excel
4 réponses
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 306
13 mai 2009 à 12:16
13 mai 2009 à 12:16
Bonjour,
tu peux faire un tri plus facilement, en enregistrant directement la macro. Tu sélectionnes toutes les colonnes, puis tu vas dans les options du tri pour savoir par quelle colonne trier, et indiquer que tu veux trier dans l'ordre croissant.
tu peux faire un tri plus facilement, en enregistrant directement la macro. Tu sélectionnes toutes les colonnes, puis tu vas dans les options du tri pour savoir par quelle colonne trier, et indiquer que tu veux trier dans l'ordre croissant.
alexandre13 200
Messages postés
22
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
29 mai 2009
13 mai 2009 à 13:35
13 mai 2009 à 13:35
oui je suis bien d'accord que l'on peut avec un fonction excel mais je cherche à le faire avec VBA
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 306
13 mai 2009 à 13:47
13 mai 2009 à 13:47
Je comprends bien ton souhait de faire ton tri en passant par une macro VBA, mais ce que je te dis, c'est qu'en utilisant l'enregisteur de macro, ça se fait assez facilement. Même si pour enregistrer ta macro tu dois être sous Excel, tu pourras obtenir un tri plus rigoureux que si tu le fais en codant tout du début jusqu'à la fin.
Sinon, pour en revenir à ton code, tu essaies de faire :
Ton n est bien déclaré, mais il n'est pas initialisé donc comment veux tu que cela fonctionne ?
Commence déjà par régler ce petit problème, je pense qu'ensuite ton programme devrait fonctionner.
Sinon, pour en revenir à ton code, tu essaies de faire :
For j = 1 To n - i For i = 1 To n - j
Ton n est bien déclaré, mais il n'est pas initialisé donc comment veux tu que cela fonctionne ?
Commence déjà par régler ce petit problème, je pense qu'ensuite ton programme devrait fonctionner.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
13 mai 2009 à 14:02
13 mai 2009 à 14:02
Bonjour,
Pas trop lr temps de tester ton code
voici un extrait qui fonctionne
le tableau s'appelle "alpha" et la variable "nbre"ont été préalablement affectés
ton test m'a paru bizarre < au lieu de <= ?
Edit 14:06h
Source: F.Sigonneau sur
http://frederic.sigonneau.free.fr/
Pas trop lr temps de tester ton code
voici un extrait qui fonctionne
le tableau s'appelle "alpha" et la variable "nbre"ont été préalablement affectés
ton test m'a paru bizarre < au lieu de <= ?
Tri croissant For i = 1 To nbre j = i For k = j + 1 To nbre ' 'si la cellule en dessous est inférieure alors elle devient j (j= la plus faible) If alpha(k) <= alpha(j) Then j = k ' on descend d'une cellule jusqu' au bas de la zone à trier Next k ' si il y a plus faible que la cellule "i" étudiée If i <> j Then 'variable temporaire tmp = alpha(j) 'on remplace dans le tableau "alpha" la valeur de j par i alpha(j) = alpha(i) 'on remplace dans le tableau "alpha" la valeur de i par j ' la valeur la + faible se retrouve donc à la place de la cellule "i" étudiée alpha(i) = tmp End If Next i ' Ecrit la zone triée et épurée (ici dans des cellules mais peut-etre adapté à des list et compobox) Range("A:A").ClearContents cptr = 1 While cptr <= nbre Cells(cptr, 1) = alpha(cptr) cptr = cptr + 1 Wend
Edit 14:06h
Source: F.Sigonneau sur
http://frederic.sigonneau.free.fr/