Temps d'affichage tableau excel [Résolu]

Signaler
Messages postés
13
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
13 décembre 2005
-
Messages postés
13
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
13 décembre 2005
-
Bonjour à tous,



voici mon problème en vba, je cherche une commande qui
permettrait de lancer une simulation qui mélange les lignes et les
colonnes d'un tableau excel. Le problème est que ça prend bcp de temps au niveau de
l'affichage. Par ex, si je lance une boucle qui mélange 1000 fois les
rangées, ben ça prend du temps.





Y aurait-il une commande qui permettrait de ne pas afficher les changements du tableau, mais juste le résultat final?







Mon but :



Voilà, j'ai créé un programme qui cherche à optimiser la fabrication de
printed circuit boards (PCB), en français, de circuits imprimés pour
les pc.



Expliqué sous l'un d'un programmateur, je dispose d'un tableau excel,
dont chaque case est soit un "0", soit un "1". Le but est de déplacer
les lignes et les colonnes de façon à avoir les 1 rassemblés dans
certains endroits.



par ex:

11000
01000
10111 00000

00100 10011




01110 00100

11010 00100 qui donnerait après
réorganisation

11001 00110




00011 10010




00000 11010

00111 01001




00000 11101

01010 01100




00000 01111





comme vous le voyez, le 1e et le 3e quadran possède maintenant plus de "1".

Voilà donc, si quelq'un connaissait un algo qui permettrait de faire ça!







Désolé d'avoir été si long, mais c'est pour être assez précis.







Merci la communauté





à bientôt

2 réponses

Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
6
Pour le temps de calcul, c'est relativement simple, mets ceci au début

Application.ScreenUpdating = False

et ceci à la fin

Application.ScreenUpdating = True



Pour l'algo, je vais d'abord essayed de comprendre ce que tu veux dire et pis on verra



Julien.
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 134 internautes nous ont dit merci ce mois-ci

Messages postés
13
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
13 décembre 2005

merci bcp, c'est bien ça que je demandais.





pour mon problème, c'est tiré du domaine de la recherche
opérationnelle. Traduit en problème informatique ça donne un truc comme
ça.





on a donc un tableau excel avec dans chaque cellule, soit un 1, soit un 0.

on divise le tableau en 9, de façon à obtenir 9 "cases" rectangulaires comportant le même nombre de cellules.

de là, on compte le nombre de cellules comportant un 1 dans les 3 "cases" se trouvant dans la 1e diagonale.

de là, le but est de déplacer les lignes et les colonnes de façon à ce
que les cellules comportant un 1 se "rangent". pour cela, on veut qu'il
y ait un maximum de 1 dans lesdites 3 cases .





petit schéma parce que je sais que c'est pas très clair...



on a un tableau de 9x9:



001001001

100001010

110100101

111100101

001010101

110011010

010100101

011010101

111001011





on le divise en 9 et on s'occupe du nombre de 1 dans les 3 cases mises en gras:



001 001 001


100 001 010


110 100 101




111 100 101


001 101 101


110 011 010




010 100 101


011 010 101


111 001 011





ici il y a 15 x 1 dans les 3 cases en gras.



si on décide par exemple de d'intervertir la 1e et la 4e ligne, on obtient







111 100 101



100 001 010



110 100 101




001 001 001



001 101 101



110 011 010






010 100 101



011 010 101



111 001 011



maintenant on en compte 17... et ainsi de suite en essayant d'avoir le maximum.









pas facile...





si quelqu'un s'y connait, moi j'utilise la méthode de "recuit simulé"
(en anglais "simulated annealing") pour trouver un algo, mais ce n'est
pas encore optimal et ça prend du temps à tourner.







thanks to the community once again