[R] Besoin de fermer automatiquement une fenetre.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Aquhydro
Niveau 3
Niveau 3
Messages : 44
Enregistré le : jeu. 16 août 2012 14:45
Localisation : En bas à droite
Status : Hors ligne

Re: [R] Besoin de fermer automatiquement une fenetre.

#41

Message par Aquhydro »

T'inquiète tout ce qui est erreurs de parenthèse c'est pas plus mal ça m'apprend à pas poser des questions bêtes et a résoudre des trucs par moi même, j'avais corrigé avant de voir l'édit,
Pour le reste merci des correction, donc voilà ce que j'ai mis, et maintenant j'ai le même message d'alerte que pour excel mais avec
If $var

*** Problème résolus pour mêmes raisons :oops:
Nouveau problème :
$oExcel.run("Copiercoller") ;(c'est le nom de ma première macro)
$oExcel^ ERROR

Error: Variable must be of type "Object".
Est ce parce que c'est un macro?
Modifié en dernier par Aquhydro le jeu. 23 août 2012 09:14, modifié 1 fois.
Glouglou.
Aquhydro
Niveau 3
Niveau 3
Messages : 44
Enregistré le : jeu. 16 août 2012 14:45
Localisation : En bas à droite
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#42

Message par Aquhydro »

Alors, j'ai essayé de contourner le problème en associant à mes maccros des raccourcis claviers, et en fait le résultats est le suivant : non seulement il ne se passe rien pour ce qui est de excel, mais si j'arrte de toucher mon clavier, voCilà le résultat :

CCC

Bref, c'est pluCtot handicapant comme vous pouvez lCe lire, évidement, si j'arrete le script, ça va Cmieu.

Donc voilà le scritp écris, ou sont les erreurs s'il vous plait... :

► Afficher le texte
j'ai trouvé quelques réponses donc j'édite

Par contre le fait de séléctionner la fenetre qui m'interesse ne fonctionne toujours pas, et vu que je ne me place pas dans excel, et bien je n'ai jamais acces à mes maccro en utilisant mes raccourcis
Glouglou.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#43

Message par mikell »

Pour Error: Variable must be of type "Object".
$file = chemin complet du fichier, par exemple :

Code : Tout sélectionner

$oExcel = _ExcelBookOpen(@ScriptDir & "\jointg control.xls", 1)
Sleep(10)
$oExcel.run("ma_macro1")
Faut mettre une balise 'spoiler' quand le code posté commence à se faire long
Marrant le C ... enfin relativement :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Aquhydro
Niveau 3
Niveau 3
Messages : 44
Enregistré le : jeu. 16 août 2012 14:45
Localisation : En bas à droite
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#44

Message par Aquhydro »

Alors, si j'ai bien compris, cela ouvrira a chaque fois une nouvelle fenetre excel? Si c'est le cas, serait il possible, plutot que de faire cela, de sélectionner la fenetre excel déjà ouverte, et de l'utiliser pour lancer la macro, parce 1) le fichier est un peu lourd, donc l'ouvrir a chaque fois est lourd pour l'ordi.
2) il faut une fonction enregistrer et fermer pour qu'a chaque fois l'un de mes deux script ait un effet, si on doit changer de fenetre, alors que sinon, il suffit juste de laisser faire... ?
Glouglou.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#45

Message par mikell »

Aquhydro a écrit : serait il possible, plutot que de faire cela, de sélectionner la fenetre excel déjà ouverte, et de l'utiliser pour lancer la macro
Oui

Code : Tout sélectionner

$oExcel = _ExcelBookAttach(@ScriptDir & "\jointg control.xls")
Mais vu que 1) je connais pas bien excel, et 2) je sais pas ce que tu veux en faire, tu devrais potasser le fichier d'aide à la rubrique User Defined Function Reference > Excel Management, je suis sûr que tu y ferais des découvertes
Par exemple _ExcelBookSaveAs : tu enregistres, puis tu continues sur le même fichier, puis tu réenregistres sous un autre nom, etc
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Aquhydro
Niveau 3
Niveau 3
Messages : 44
Enregistré le : jeu. 16 août 2012 14:45
Localisation : En bas à droite
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#46

Message par Aquhydro »

Merci pour l'aide, et en effet y'a des trucs pas mal, mais pas de quoi faire la séléction que je veux faire, avec WinActivate, y'a t'il une raison que ça ne fonctionne pas?
mon code actuellement est celui ci :
► Afficher le texte
Et j'y rencontre trois probleme, 1) que je mette "If Not Winexist" ou "If WinExist()=0 " il me dit Unable to parse line.
Ensuite, le winActivate de excel, j'ai essayé avec : "Microsoft Excel - jointg control.xls [Mode de compatibilité]" comme titre, qui est celui de autoit Win Info, ensuite , vu que j'ai vu que seule la classe du control button changeait entre les differentses parties de excel (ce qui au demeurant ne devrait pas poser problème vu que si je clique ou que ce soit dans excel, ça devrait activer la fenetre normalement) , j'ai mis la classe du bouton de controle (ci dessus) dans tout les cas, ça ne fais absoluement rien, et ça fait ctrl+u sur les fenetres en cours, et jamais sur la fenetre Excel voulue, qui ne se séléctionne jamais automatiquement...

Une idée?
Glouglou.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#47

Message par mikell »

Aquhydro a écrit : que je mette "If Not Winexist" ou "If WinExist()=0 " il me dit Unable to parse line.
normal :mrgreen:

Code : Tout sélectionner

   [color=#FF0000][/color] If WinExists("[TITLE:jointg1; CLASS:#32770]", "")=0 Then
Mais y a un truc que je comprends pas, tu veux lancer 4 tâches simultanément ou successivement ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Aquhydro
Niveau 3
Niveau 3
Messages : 44
Enregistré le : jeu. 16 août 2012 14:45
Localisation : En bas à droite
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#48

Message par Aquhydro »

Pour le WinExists, je mettais () pour simplifier, à l'interieur j'ai tout mis bien comme il faut regarde dans le spoiler...

En fait ce sont des taches qu'il est impossible de lancer simultanéments, mais elles peuvent travailler simultanéments si elles ne sont pas plus de 4 taches à la suite, en gros : je lance la premiere, elle dure 15 min, je lance la seconde 15s après avoir lancé la premiere, elle dure 30 minute, la troisieme tjrs 15 s durera 6 minutes, et la 4 ème va durer 2h. Si j'en lance une 5eme le logiciel plante. Le but est de gagner un maximum de temps, donc ici : dès que la 3 sera fini, je fais en sorte qu'elle soit remplacée par une autre, après viendra le tour de la 1, remplacée immédiatement, etc. Par contre, je peut pas savoir à l'avance combien de temps elles vont durer, d'ou le code que je demande.
Glouglou.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#49

Message par mikell »

OK
Il y a une curiosité devant la ligne du If WinExists, regarde ce que tu as posté....

Sinon le shéma de base de ton script doit être :
► Afficher le texte
reste à définir précisément la fameuse "action à faire", en évitant de se disperser ^^
Je suppose qu'il s'agit d'ouvrir une nouvelle fenêtre
"Si j'en lance une 5eme le logiciel plante" quel logiciel ? si c'est lui qui lance les tâches, c'est sur lui qu'il faut agir dans l' "action à faire"
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Aquhydro
Niveau 3
Niveau 3
Messages : 44
Enregistré le : jeu. 16 août 2012 14:45
Localisation : En bas à droite
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#50

Message par Aquhydro »

Alors c'est un peu plus compliqué que cela.
J'utilise un logiciel de modélisation, qui se lance à partir d'une fenetre excel avec un macro qui oriente vers un fichier exe. la fenetre excel est ABSOLUMENT nécessaire du fait que c'est grace à elle que je peut donner mes données au fichier exe qui simulera celles ci.
"L'action a faire" est donc, de lancer un macro excel, le problème, et vu d'autres discutions sur le forum, je ne suis pas le seul à l'avoir rencontré, et que l'option pour lancer les macro ne fonctionne pour ainsi dire pas. Ca n'est pas grave il y a une autre solution, c'est de mettre la fenetre excel au premier plan, de la selectionner (elle se déselectionne a chaque fois que la macro est lancée) et de faire une commande du clavier (j'ai mis comme raccourci pour le lancement de ma macro Ctrl+u, donc en gros

Code : Tout sélectionner

Send("^u")
)

Au delà du fait que le lancement des macro fonctionne ou non, la fonction "mettre en premier plan telle fenetre excel" n'existant pas avec les codes relatifs à Excel.au3, ça devient très problématique vu que la seule possibilité est d'enregistrer, fermer et de réouvrir à chaque fois le fichier excel, tache qui me prend suffisement de temps (fichier très lourd) pour préfèrer largment l'utilisation éventuelle d'un WinActivate
Glouglou.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#51

Message par mikell »

OK
Donc ça devrait suffire comme action à faire

Code : Tout sélectionner

WinActivate("Microsoft Excel")
WinWaitActive("Microsoft Excel")
Send("^u")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Aquhydro
Niveau 3
Niveau 3
Messages : 44
Enregistré le : jeu. 16 août 2012 14:45
Localisation : En bas à droite
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#52

Message par Aquhydro »

► Afficher le texte
X_x Il y a encore une erreur (wend sans while, donc c'est une erreur quelconque) et je la trouve pas... tout comme je n'ai toujours pas réussi à voir le problème tout à l'heure dans :

Code : Tout sélectionner

    If WinExists("[TITLE:jointg1; CLASS:#32770]", "")=0 Then
Je dois pas avoir encore les bons yeux, ou (et ça c'est certain) ne pas m'y connaitre assez
Glouglou.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#53

Message par mikell »

► Afficher le texte
"Je dois pas avoir encore les bons yeux"
Non mais il y avait un caractère parasite en tête de ligne, probablement un caractère invisible sur ton pc si je le vois et pas toi
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Aquhydro
Niveau 3
Niveau 3
Messages : 44
Enregistré le : jeu. 16 août 2012 14:45
Localisation : En bas à droite
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#54

Message par Aquhydro »

Toujours le même message...

J'ai aussi essayé avec ElseIf au lieu de Else, idem;
ça gêne pas que y'a un End If, et juste après re If? (je dis surement n'importe quoi, mais j'essai... )
Glouglou.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#55

Message par mikell »

Pas d'erreur dans ce code
► Afficher le texte
"EndIf" sans espaces !
Et oui, tu peux mettre plusieurs conditions If-(Else)-EndIf dans une boucle, pourvu que la syntaxe soit correcte
Tu commencerais pas à fatiguer ? c'est l'heure d'une bonne bière :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Aquhydro
Niveau 3
Niveau 3
Messages : 44
Enregistré le : jeu. 16 août 2012 14:45
Localisation : En bas à droite
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#56

Message par Aquhydro »

Tu avais raison, la bière a aidé!
Merci beaucoup pour le EndIf, même si j'ai été un gros boulet :oops:
Glouglou.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#57

Message par mikell »

No problemo
La cause fréquente de genre d'erreur bête c'est la speed-saturation + le manque de pratique (et de bière) Image
Peut-on considérer le problème comme résolu ?
Si oui, un [R] dans le titre du premier post please
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Aquhydro
Niveau 3
Niveau 3
Messages : 44
Enregistré le : jeu. 16 août 2012 14:45
Localisation : En bas à droite
Status : Hors ligne

Re: [...] Besoin de fermer automatiquement une fenetre.

#58

Message par Aquhydro »

Merci beaucoup, je retiens toutes les astuces, surtout celle de la bière!

\o\ \o/ /o/ J'ai monté un niveau, j'me crois dans Final Fantasy ça y est :p
Glouglou.
Répondre