Bonjour,
Alors pour commencer une petite explication du contexte :
Je suis apprenti dans une assez grosse entreprise, et je dois créer un outil de contrôle visual.
Le budget étant serré, je travaille avec ImageJ pour la partie traitement de l'image, et pour l'interface j'ai decide de me tourner vers VBA, le plus simple à mettre en place ici.
Voila grosso modo comment ça doit se comporter :
On crée toutes les couleurs grace à une macro VBA, les données sont reccueillis vers une feuille ("Couleurs" ) qui enregistre tout ce qui interesse ( paramètres pour le traitement ImageJ, nom de la couleur, etc... ) à l'aide d'un petit formulaire, cette partie la marche sans problèmes ( pour l'instant ).
Sur une autre feuille ("Opérateurs" ), on à une autre macro qui permet de lancer le traitement de l'image, donc en gros :
0 - On nettoi la feuille de toutes les données précédentes
1 - On choisis une couleur dans la liste des couleurs crées
2 - Excel génère un fichier Macro.ijm ( format similaire à un fichier .txt, juste l'extension qui change ) qui donne les instructions à imageJ en function des données rentrées dans la feuille "Couleurs"
3 - Le fichier généré est lancé
4 - Le fichier généré est supprimé
5 - ImageJ crée à la fin de son traitement un fichier excel, dont les données sont recupérés par le fichier et intégrès dans la feuille opérateur
6 - Les stats sont affichées
Le plus gros soucis que j'ai c'est pour l'étape de la creation du fichier Macro.ijm, le fichier ressemble à ça en gros ( pour mieux voir, les valeurs variables sont entre 3 crochets [[[]]]) :
Code :
- run("Image Sequence...", "open=[C:\\Users\\PC-Portable-03\\Documents\\Compteur_de_dots\\Programme\\Image\\]" );
- run("Clear Results" );
- imgName=getTitle();
- selectWindow(imgName);
- run("Split Channels" );
- selectWindow(imgName + " ([[[FILTRE]]])" );
- close("\\Others" );
- setThreshold(0, [[[THRESHOLD]]]);
- run("Threshold" );
- roiManager("draw" );
- run("Analyze Particles...", "size=[[[TAILLE_MINI]]]-Infinity show=Masks summarize" );
- selectWindow("Summary" );
- saveAs("Text", "C:\\Users\\PC-Portable-03\\Documents\\Compteur_de_dots\\Programme\\Summary.xls" );
- selectWindow("Mask of Image ([[[FILTRE]]])" );
- close("\\Others" );
|
Pour l'instant, la solution la plus "simple" que j'ai trouvé c'est de rentrer chaque ligne dans une cellule puis de faire un :
Code :
- Print #1, Sheets("DATA" ).Cells(1, 1) & Chr(10) & Sheets("DATA" ).Cells(2, 1) & Chr(10) & Etc...
|
Sauf que dans l'affichage wordpad ça passé, mais en affichage bloc note simple ça rajoute que des espaces et non plus des sauts de lignes
Est ce que vous voyez d'autres solutions pour se problème ? Je suis totalement novice en programmation VBA, c'est la première fois que j'en fait et j'avance le projet avec un livre d'apprentissage VBA sur mon bureau et google qui tourne en permanence pour trouver les solutions, mais la je coince.
En tout cas merci aux courageux qui ont tout lu, je présente mes excuses pour les innombrables fautes qui doivent trainer, j'ai un correcteur anglais qui tourne et me fait des correction automatique en plus de faire scintiller tout le texte en rouge, ce qui n'aide pas
Bonne journée