IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

trier un tableau de lettres


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Par défaut trier un tableau de lettres
    Bonsoir , sous excel , de la ligne 51 à la ligne 57 j'ai respectivement ce tableau de lettres :

    f
    h
    d
    z
    e
    r
    a

    J'ai voulu écrire une macro qui trie ce tableau par l'algorithme de tri par sélection . Pour cela j'ai une une fonction 'indice' , qui me renvoie l'indice de la 1ere lettre dans le tableau ( ici l'indice de la lettre a donc ) , cette fonction marche parfaitement je l'ai testé 100 fois . J'ai ensuite écrit une procédure 'echanger' qui échange le contenu de 2 cellules , cette procédure marche également je l'ai testée .

    Et voici le code de la macro qui doit me trier ce tableau de lettres , et il ne marche pas , les lettres ne sont pas replacées dans l'ordre je ne comprends pas j'ai respecté l'algorithme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Trier()
    Dim Min As Double, i As Long, fin As Long
    fin = 57 - 1
        For i = 51 To fin
            Min = ligneMin
            echanger i, Min
        Next i
    End Sub
    Est ce que quelqu'un voit une erreur dans cette macro ? Car moi non...

    merci .

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir, shaku,

    un indice de réflexion (et rien de plus, s'agissant d'un exercice... que Vb ne rend pas nécessaire...) :
    il semble que ta variable ligneMin (je dis il semble car on ne sait pas comment sa valeur est calculée), soit le numéro de la ligne de plus petite valeur.
    Si, comme tout le donne à penser, ta boucle parcourt toujours de 51 à fin, elle trouvera toujours la même plus petite valeur, et donc, à partir du 2ème tour de boucle, changera cette ligne pour elle-même !

    Tout celà, bien évidemment, à moins que lignemin soit le résultat (que ton code ne montre pas) d'un décalage (dont on ne comprendait alors pourquoi il ne se fait pas dans la boucle elle-même)...

    Conclusion (une fois de plus) : un algo avant de coder.
    Voilà... je te laisse en ce qui me concerne à ton exercice.

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Par défaut
    C'est bon j'ai réussi à boucler cet exercice , merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Trier un tableau en 2 boucles
    Par SaladinDev dans le forum Assembleur
    Réponses: 9
    Dernier message: 07/05/2005, 22h38
  2. Trier un tableau par rapport à un autre tableau
    Par deaven dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 02/05/2005, 09h27
  3. [Débutant] Remplir et trier un tableau
    Par james-dean dans le forum Assembleur
    Réponses: 15
    Dernier message: 01/05/2005, 17h40
  4. Trier un tableau par ordre croissant
    Par Halleck dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 01/11/2004, 00h04
  5. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo