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 :

Implémentation algorithme Dijkstra


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 6
    Points : 0
    Points
    0
    Par défaut Implémentation algorithme Dijkstra
    bonjour,
    j'ai réussi a trouver une implementation de l’algorithme de dijkstra sous Excel,
    Il faudrait remplir juste remplir la procédure (sub dijkstra())

    Merci

    Cordialement

  2. #2
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    Euh, c'est une question ? Une contribution ?

    Tu dis que tu as trouvé une implémentation mais après tu en demandes une. Pas très clair ton message.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    le probleme c'est que l'implementation n'est pas complete
    et je voudrais juste savoir si quelqu'un pourrai bien m'aider à l'achever

  4. #4
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    Soit il y a un expert de cet algorithme sur le forum, soit il va falloir que tu l'expliques un peu. On peut t'aider pour l'implémentation, mais ce n'est pas à nous de chercher sur Google tous les détails...

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    bein en fait je l'ai realisé , mais il me reste juste une petite procedure a faire ( je bloque la dessus )
    je veux bien attacher le fichier .xlms mais je c pas comment faire !?!?

    le voila
    Fichiers attachés Fichiers attachés

  6. #6
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    Le fichier que tu avais attaché a été supprimé car selon les règles du forum, on n'attache pas un fichier à la première discussion. C'est seulement si une fois le problème bien posé et le code fourni, on a vraiment besoin du fichier pour résoudre le problème. Ça évite de surcharger les serveurs et c'est mieux pour des questions de sécurité.
    Je t'encourage d'ailleurs vivement à lire les règles du forum.

    Pour ce qui est de ta question, je veux bien t'aider, mais que doit faire ta procédure !!!

    Imagine que je vienne te voir en te demandant : "S'il te plait, tu peux me fabriquer un truc ?". Tu pourras être le meilleur bricoleur du monde, il y a peu de chances que tu me fabriques ce à quoi je m'attends !!!

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    hhh , bein monsieur j'aimerais bien relaiser l’implémentation de l'algorithme de dijkstra sous excel (en vba)
    voila!!!!
    ect ce que vous pouvez m'aider

  8. #8
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    Bon, puisque ton sujet était marrant, j'ai fait un truc en reprenant tout simplement l'algorithme donné par Wikipédia. Par contre, je suis désolé, je n'ai pas fait l'effort de comprendre les classes que tu avais déjà créées, je m'en suis créées d'autres, c'était plus simple pour moi.

    En tout cas ça marche, j'ai vérifié avec l'exemple de Wikipédia. Je te laisse décortiquer tout ça.

    Par contre, pour t'expliquer mes remarques précédentes : ici, c'est un forum d'entraide où en général on répond à un problème précis lié à VBA. Il y a donc deux types de sujets auxquels la plupart des contributeurs n'aiment pas répondre :
    • Celui qui vient avec en gros : "mon boss m'a demandé de faire ça en VBA, je n'y connais rien et j'ai la flemme de m'y mettre, vous pouvez me le faire ?"
    • Celui qui vient avec un sujet qui est plus "fonctionnel" que "technique", sans donner de précisions sur le coté fonctionnel justement

    Dans ton cas, on ne savait pas trop si ton problème était le VBA ou le fait que tu ne comprenais pas l'algorithme. L'idéal aurait été d'expliquer l'algorithme dans ton message.
    Enfin j'arrête de t'embêter, au final tu m'as fais faire des recherches intéressantes
    Fichiers attachés Fichiers attachés

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Sebastien ur amazing , i'm greatfull

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Points : 29
    Points
    29
    Par défaut Dijkstra en Excel, sans macro ni Visual Basic
    Bonjour !

    Je préfère toujours utiliser Excel comme un tableau (worksheet) plutôt que comme support de macro : problème de virus, problème de lisibilité, difficulté pour voir comment ils fonctionnent, ...

    Les outils proposés sur le net pour appliquer l'algorithme de Dijkstra (qui permet de trouver le chemin pondéré le plus court d'un point du graphe à tout autre) sont souvent à base de programmes procéduraux.

    Voici un outil excel simple, sans macro ou VBasic, accompagné de quelques outils de saisie adaptés à différentes situations: graphe connu par sa matrice, graphe non orienté, graphe avec relativement peu de segments.

    J'ai privilégié la compacité, notamment en bannissant les tables intermédiaires, au prix d'une complexité de certaines formules, je le concède.

    Il reprend le format enseigné en fac/école ou en spécialité au lycée. Son fonctionnement est relativement facile à décrypter, plus en tout cas que la version procédure. Il faut quand même bien connaître l'algorithme (être capable de le faire à la main par exemple). On sait comment l'algorithme à travaillé grâce à la matrice de calcul des résultats.

    Il est facile à étendre à des matrices plus grandes.

    Enjoy !
    Fichiers attachés Fichiers attachés

  11. #11
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    Bonjour,

    Ton fichier est intéressant, une autre manière de procéder.
    Par contre, j'avoue que je ne partage pas ton point de vue sur l'utilisation d'Excel.

    Virus : Si tu crées toi-même les procédures, aucun risque. Au pire si tu reprends des fichiers trouvés sur le net, il faut vérifier un peu le code, je te l'accorde. Mais je n'ai encore jamais trouvé de code malveillant.

    Lisibilité : Cela dépend fortement de la personne qui fait le code (ou le classeur). Je ne sais plus si je l'avais fait pour cet exemple, mais si on commente correctement le code et que l'on nomme les variables intelligemment, c'est très clair. Il est plus facile de comprendre dans un code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vitesse = Distance / Temps
    que
    par exemple. Surtout quand les calculs deviennent compliqués, le faire via du code permet de le décomposer en plusieurs étapes.
    Dans cet exemple précis, si on estime que pour mieux comprendre il est intéressant de visualiser la construction de la matrice, on peut très bien rajouter dans le code quelques lignes pour l'affichage. Mais l'aspect procédural permet de décomposer les différentes étapes, alors que si on regarde seulement les formules, il n'est pas toujours évident de comprendre dans quel sens il faut les lire (outre le fait qu'il faut toujours regarder à quoi correspond un G25 ou un B18 )

    Fonctionnement : VBA est doté d'un mode pas à pas, d'espions, d'un fenêtre de debug. Autant d'outils qui permettent de détailler tout ce qui se passe de manière très simple.

    Voilà, c'est un débat intéressant et je voulais ajouter mon point de vue à d'éventuels lecteurs intéressés.

    D'ailleurs parfois, le plus intéressant si l'on recherche le coté didactique, sera un juste équilibre entre formules et code.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Points : 29
    Points
    29
    Par défaut VBA ou pas VBA ?
    Le débat VBA ou plain Excel est intéressant.

    En fait, il y a un "historique" à ma pratique qui me pousse à ne pas utiliser les macros/VBA que je sais construire : j'ai souvent vu des gars se lancer dans une programmation VBA simplement par ce qu'ils ne savaient pas utiliser les fonctions les plus puissantes du tableur (fonctions de bases de données, recherches, tables, fonctions matricielles, ...) et de partir dans des délires qu'ils ne savaient pas gérer.

    Ensuite, je le confesse, j'ai vu des gars se prétendre être des "dieux" (sic) en Excel alors qu'ils étaient tout juste corrects. Peut-être qu'utiliser les fonctions les plus avancées de manière atypique me permet inconsciemment de me différencier des "dieux" !

    Plus sérieusement:
    Sécurité : Ouvrir à l'exécution des macros, même pour ses propres macros, est une ouverture pour d'autres macros. De plus, l'intérêt aussi des macros/VBA, c'est de pouvoir utiliser des outils faits par d'autres. Là, je n'ai aucune crainte par rapport à des outils tiers écrits à partir de formules seulement.
    Rapidité :
    on a aussi un bonus net pour ce qui est fait sur la seule worksheet. videmment, cela est d'autant plus sensible que l'on a à traiter de grande quantité d'information.
    Rapidité de développement : J'ai observé que souvent je développais plus vite une maquette avec le tableur qu'en procédural. La transformation en boucles n'est pas le seul moyen de penser l'algorithmique (même si c'est le mode le plus fréquent) . On peut découper autrement les différentes étapes pour atteindre un résultat.

    Lisibilité : Je trouve que les formules, dans une certaine mesure, sont plus proches d'un idéal "déclaratif". Il est plus facile de comprendre l'architecture d'un projet.
    Modifications : Là aussi, je trouve beaucoup plus facile de faire subir une évolution à une worksheet avec des données déjà installées et d'améliorer de manière incrémentale. C'est souvent robuste (à part les fonctions recherchev() ) par rapport à ces évolutions.

    Maintenant, il y a de nombreuses limites à l'exécution d'"Excel plain" pour des applications complexes.
    Nommage : La limite relevée par ZèbreLoup du nommage des variables peut tout aussi bien se régler avec la définition de nom et on arrive strictement au même résultat.
    Déverminage : On dispose de moins d'outils dans le déverminage, c'est clair et bien dommage. Même si on arrive à se débrouiller et que le besoin est par construction moindre : en effet, les "bouts de fonction" sont plus gros et plus faciles à déverminer de manière unitaire.
    Fonctions manquantes : Les formules dans les cases ne peuvent malheureusement pas contenir de petits bouts "procéduraux" et c'est dommage. Ainsi, si au lieu de répéter une fonction comme dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    si ( recherchev(...) ; recherchev(...) ; ...)
    on pouvait rentrer dans une cellule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     temp:= recherchev(...) ; si (temp; temp ; ... )
    cela favoriserait la lisibilité dans bien des cas. D'autres fonctions manquent comme un opérateur de concaténation qui pourrait englober un nombre variable de cellules à concaténer - comme il y a une fonction "somme".
    Projets de taille : Le bricolage n'est plus adapté, tout juste sur des portions que l'on voudrait expérimenter avant de les transformer en bonnes vieilles procédures. Cela fournit aussi des comparaisons pour vérifier les résultats produits.

    Pour de petits projets, savoir utiliser toutes les ressources des fonctions excel de la worksheet permet de s'en sortir bien et surtout vite y compris pour des données d'assez grande taille.

    Cela dit, on n'a pas fini de voir des programme en VBA sans que cela soit "nécessaire" . Faut croire qu'il est plus facile de faire une procédure que d'utiliser les outils worksheet de Excel : la preuve d'une faiblesse, ... *


    * provisoire, à corriger ?

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

Discussions similaires

  1. Implémentation de l'algorithme Dijkstra
    Par zeinab ali dans le forum MATLAB
    Réponses: 6
    Dernier message: 12/05/2016, 14h30
  2. Implémentation algorithme Fienup
    Par mawkli dans le forum Images
    Réponses: 2
    Dernier message: 25/01/2012, 15h48
  3. implémentation algorithme ID3
    Par Nayra dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 30/11/2010, 10h50
  4. Algorithme dijkstra avec listes
    Par x-epsilon dans le forum C
    Réponses: 0
    Dernier message: 11/02/2010, 13h59
  5. probleme implémentation algorithme FFT
    Par philo69 dans le forum C
    Réponses: 15
    Dernier message: 08/05/2007, 18h33

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