Trier des nombre

Débutant en VBA et en prog en général, j'étudie mes premiéres fonctions avec un manuel bourré d'erreur et c est pas simple. Je suis actuellement en train d essayer de comprendre un de leurs algorythme pour trier des nombres d une colonne A par ordre croissant et les afficher dans la colonne B.

Ils développent ca sur 3 procédures, c est surement trop long et compliqué quand on connait excel mais pour un debutant c est l inverse normalement. C est fait pour regrouper toutes les fonctions apprisent précédemment donc ca developpe pas mal, quand on sait programmer bien sur qu on fait o plus court. Donc ne me poster pas svp un autre code moi je veux trouver les erreurs dans celui de mon manuel.

Jen ai déjà trouvé quelques unes, genre une variante qui change de nom entre 2 procédures. Si tu recopie bêtement t es fouttu, si tu te demande dans ta 2eme procedure ce qu une nouvelle variante non declaré au préalable fout là, alors t as compris.

Le bleme c est que leur code ne fonctionne pas, j ai une erreur de compile "type defini par l utilisateur non defini.

Les 3 procédures se repartissent le travail comme ceci :

Desolé mon post est parti trop vite, voici donc le travail de mes procédures :

1 procedure de chargement des données, d appel de la fonction tri et d affichage du resultat

2 algorythme fonction tri (appelé dans la procedure 1)

(j en ai 2 pas 3), j y ai mis des comm, j espere que vous allez pouvoir m aider j ai une erreur de compil "type defini par l utilisateur non defini" sur la 2eme procedure "function Tri(ByRef).

Je ne comprend pas comment est fait leur "OrdreCroissant...n est t il pas a declarer aussi avec Dim?

Merci de vos reponse. Il faut savoir que j ai mis "tri" mais que eux avait mis "TriDonnées" mais je ne trouve rien sur cette fonction dans excel,. N est ce pas une fonction qu il faut créer au prealable avec une macro??alors la ca deviendrait fastidieux leur code pour trier 4 5 nombre!!! je veux bien qu ils aillent au plus long pour ne pas nous faire apprendre trop de fonction avant de pouvoir simplifier mais là quand meme!!

Merci de vos éventuels reponse

5classeur3.xlsm (13.75 Ko)

Bonjour,

tu es sûr que c'est truffé d'erreurs ou c'est toi qui recopie mal ?

ubdound ???

As boleen ????

Je te laisse trouver les bons termes.

Sinon :

Dim TableauDonnées() As Variant ' declare un tableau Variant dynamique

et

TabDonnées(n) = TableauDonnées(i)

D'où il sort ce TabDonnées ???

et quand à :

If (OrdreCroissant = True And TableauDonnées(i) < True And TableauDonnées(n)) Then

j'ai de gros doutes (euphémisme), rien d'oublié ?

Si vraiment tout est écrit comme ça change de bouquin.

Remarque c'est formateur aussi le débogage...

Et je te confirme que le code n'est pas du tout optimisé

eric

Salut et merci de ton aide,

Alors oui les () dans

Dim TableauDonnée

L'erreur dans Boolean bien sur c est moi aussi....

et "Tabdonnées" bah c est comme ca que le manuel nommait "TableauDonné" dans un précedent TP, c est meme devenu "MonTableau entre temps!!! car il faut savoir qu on bosse sur les memes procédures sur plusieurs TP, celle de mon 1er TP sont censé avoir la meme base que mes 2 procédures. Donc oui je vais changer de manuel, même si ça forge, faut pas pousser!

Je reposte mon code corrigé, car toujours cette erreur dans

Function triDonnées(ByRef TableauDonnées() As Variant, _

Optional OrdreCroissant As Booleen = True)

Type defini par l utilisateur non defini.

merci

avec les éléments que je t'ai fourni tu ne devrais plus avoir de 'Type defini par l utilisateur non defini.'

Tu n'as pas du faire toutes les corrections suggérées.

Et il te restera à trouver les bons tests (dernière ligne de code que je t'ai indiquée) pour trier réellement tes valeurs

eric

Rechercher des sujets similaires à "trier nombre"