macro super baleze avec le solveur

21did21

XLDnaute Junior
salut tous,

j'ai besoin de faire une macro que je qualifie de super balèze (pour moi en tout cas), je vais vous expliquer ce que je veux faire et pouvez vous me dire si c'est possible (je pense que oui) ? et pouvez vous me donner s'il vous plait des mots clefs pour me faciliter mes recherches (par exemple le mot clef qui sert à ouvrir un fichier texte) car je trouve l'aide de VBA nulle (ou je sais pas l'utiliser).
Merci d'avance.

Voici ce que je veux faire
1°) je vais faire un fichier excel qui contient 3 colonnes: "temps", "mesure1", "mesure2" et trois cases "parametre1", "parametre2", "parametre3".
2°) je veux qu'excel me fasse varier les 3 parametres pour minimiser l'erreur entre les colonnes "mesure1" (fixe), "mesure2" (variable)
=> j'ai deja fais ce type de chose dans le passé avec le solveur mais ici les choses sont plus difficile car je dois lancer d'autres logiciels pour pouvoir avec les resultats de la colonne "mesure2"
3°) lorsque le solveur d'excel test un jeu de parametre il faut qu'il ecrive ces 3 parametres dans un fichier texte (dans C:/bibi)
4°) ensuite il faut lancer l'executable (c:/bibi/monExe.exe), à la fin du calcul un fichier texte resultat est généré
5°) il faut donc que je détecte la presence ou non du fichier texte resultat, tant qu'il n'est pas là je fais rien et dès qu'il est là je le prends, je le renomme et je le coupe et colle dans un autre dossier (C:/toto)
6°) il faut que je lance l'executable qui se trouve dans ce dossier (C:/toto/exe2.exe)
7°) de meme, j'attend les resultats qui sont sous forme de fichier texte. dès qu'il sont là je les ouvre et je remplace les 4 premieres lignes par 3 lignes "AAA" "BBB" "CCC" et je supprime la dernière ligne si elle ne contient pas de chiffres
8°) ensuite j'ouvre un autre fichier resultat "R.txt" je copie le contenu (il n'y a qu'un nombre) et je le place dans la case 1 de mes resultats "mesure2" de mon fichierExcel
9°) (je fais ceci pour les autres fichiers resultats)
10°) une fois que j'ai recupéré tous les résultats "mesure2" alors le solveur d'excel peut faire la différence avec la colonne "mesure1" et tester un nouveau jeu de parametres

je pense que ceci est faisable mais j'ai deja 2 problemes d'ordre general:
==> tout d'abord, lorsque j'ai utilisé le solveur par le passé ce n'était pas avec VBA mais juste par l'interface mais je pense que ça ne change pas grand chose il suffit de faire un enregistrement de macro pour connaitre la syntaxe à utiliser ?
==> par contre, lorsqu'on utilise le solveur generalement, excel change les parametres et effectue les calculs directements puisqu'il sont dans le classeur excel. Ici le soucis c'est que les calculs sont effectués par les .exe et je ne sais pas comment faire comprendre ceci au solveur d'excel

sinon voici point par point les infos que je cherche:
2°) je pense qu'il n'y a pas de soucis il suffit que j'enregistre une macro et que lance le solveur manuellement pour que les commandes soient enregistrées dans VBA ?
3°) ça je ne sais pas trop car je n'ai jamais fait de .txt avec VBA mais surtout le probleme ici et que je ne sais pas comment faire ceci en plein milieu du solveur (il faut qu'il soit sur pause?)
4°)5°) lancer l'exe c'est facile a mon avis. Pour attendre les resultats je fais faire une boucle qui tourne indéfiniment en testant à chaque fois la presence du ficheir resultat (mot clef which je pense?) et qui casse la boucle si ce fichier apparait (break ?)
6°) pour faire le couper coller avant cette operation je ne vois pas comment faire, quels sont les mots clef svp (j'ai jamais manipulé de fichier avec VBA)
7°)8°)9°) si je sais faire ce qu'il y a avant ça sera facile
10°) là il faut que je dise au solveur qu'il peut faire son calcul et lancer un nouveau jeu de parametres mais je ne vois pas comment faire (c'est mon probleme principal)

j'espere que vous pourrez me donner quelques indications pour réaliser cette macro car je ne vois pas comment faire. Mon principal probleme est de comprendre comment gérer le solveur en lui disant de faire les calculs par l'intermediaire des .exe

merci d'avance à tous ceux qui auront pris le temps de lire ce long texte :eek:
 

Dranreb

XLDnaute Barbatruc
Re : macro super baleze avec le solveur

Bonjour.
comment gérer le solveur en lui disant de faire les calculs par l'intermediaire des .exe
Peut être via des fonctions personnalisées appelées dans des cellules qui dialoguent avec les .exe (via les fichiers textes s'il n'y a vraiment pas moyen de les faire travailler autrement, mais ça risque d'être long). C'est quoi ces .exe ? Qu'est-ce qu'ils font ?
des mots clefs pour me faciliter mes recherches
Open, Input, Write, Line Input, Print, Close, Shell, AppActivate
À +
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : macro super baleze avec le solveur

Bonjour

Je ne pense pas que tu puisses demander au solveur de calculer avec un programme externe.
Le solveur est écrit en langage machine et tu n'as pas accès à cette partie de la programmation, tu ne peux donc pas changer cela. Tu peux utiliser différentes méthodes de résolution, différents paramètres mais tu restes dans excel.

Le solver a été développé initialement comme un addin d'excel puis intégré au programme. Tu trouveras beaucoup d'infos sur ce site (en anglais)
Basic Excel Solver - Support Information - Frontline Systems
 

21did21

XLDnaute Junior
Re : macro super baleze avec le solveur

salut, et merci d'avoir pris le temps de repondre!!

Peut être via des fonctions personnalisées appelées dans des cellules qui dialoguent avec les .exe (via les fichiers textes s'il n'y a vraiment pas moyen de les faire travailler autrement, mais ça risque d'être long). C'est quoi ces .exe ? Qu'est-ce qu'ils font ?

ah d'accord, je fais regarder ceci. Les .exe sont des logiciels qui lancent des calculs à partir de fichiers textes, je n'ai pas d'autre façon de faire..

Open, Input, Write, Line Input, Print, Close, Shell, AppActivate

super! merci, je vais regarder ceci.


Je ne pense pas que tu puisses demander au solveur de calculer avec un programme externe.
Le solveur est écrit en langage machine et tu n'as pas accès à cette partie de la programmation, tu ne peux donc pas changer cela. Tu peux utiliser différentes méthodes de résolution, différents paramètres mais tu restes dans excel.

Le solver a été développé initialement comme un addin d'excel puis intégré au programme. Tu trouveras beaucoup d'infos sur ce site (en anglais)
Basic Excel Solver - Support Information - Frontline Systems

ah ok :-(
je vais quand meme essayer de voir si il est possible de faire comme Dranreb le suggere (avec des fonctions personnalisée).
 

Dranreb

XLDnaute Barbatruc
Re : macro super baleze avec le solveur

On dirait des vieux programmes écrits en Fortran peut être ? On peut savoir ce que c'est comme calculs ? Les sources n'existent nulle part ? Comment doivent se présenter les données dans les fichier textes, en entrée et en sortie ? Il existe quand même une possibilité de reprogrammer ces calculs, à condition de savoir de quoi il s'agit.
À +
 

21did21

XLDnaute Junior
Re : macro super baleze avec le solveur

en fait on peut pas faire grand chose car les programmes qui calcul ceci sont des logiciels commerciaux donc pas de sources :-(
c'est des calculs elements finis que j'aimerai lancer à terme; les données d'entrees pour ce type de logiciel sont dans des fichiers textes du genre:

geometrie
0 0.1 0.5 0.8 ...
materiau
1000 5663 888
type de calcul
4
.
..
...
(le fichier de sortie à deux colonnes (et un peu de texte avant et apres) : le temps et le resultats que je souhaie pour chaque temps)

en fait je voudrais changer les parametres materiaux et lancer un calcul avec le logiciel, recuperer les resultats et les mettre sous excel pour utiliser le solveur.
 

Discussions similaires

Réponses
8
Affichages
710
Réponses
2
Affichages
235