[..] Comparer une valeur dans un excel et cliquer sur cette valeur dans un exe

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
megane962
Niveau 1
Niveau 1
Messages : 10
Enregistré le : lun. 08 mars 2021 15:28
Status : Hors ligne

[..] Comparer une valeur dans un excel et cliquer sur cette valeur dans un exe

#1

Message par megane962 »

Bonjour les amis !

Désolé pour le titre du sujet mais en vous exposant mon problème, si vous arrivez à me proposer un autre titre pour ce sujet, je serai preneur ;)

J'aimerai pouvoir vérifier si la valeur d'une cellule de couleur verte dans un Excel existe également dans un programme de base de donnée exe, on cliquera deux fois dans la liste où cette même valeur existe dans le programme de base de donnée exe.

en image ça ressemblerai à cela :
comparaison.png
Voici mon script pour faire des manipulations automatique dans le programme qui me sert à imprimer des données.
Actuellement j'ai réussi à lancer le logiciel et à effectuer quelques commandes, il me reste à pouvoir faire cette comparaison coté plus haut et de cliquer sur les valeurs comparées :
Opt("WinTitleMatchMode", 1) ; Permet de chercher qu'une partie du titre de la fenêtre.
; Affichage d’une infobulle d’information
Traytip ("Ouverture BaseDeDonnée","Début d'Impression BaseDeDonnée",1000)
; Pause de 3 secondes
Sleep(3000)
; Lancer le programme
ShellExecute("BaseDeDonnee.exe")
; Attendre la fenetre principal de la BaseDeDonnée
WinWaitActive("Base De Donnée Central")
; lancer la fenetre principal de de la Base de Donnée Journaliere en effecutant une suite de frappe clavier
Send("!j")
Send ("t")
; Attendre la fenetre principal de la Base de Donnée Journaliere
WinWaitActive("Saisie de la Base de Donnée Journaliere pour J-n")

$color="0xFF0000"
Sleep(1000)
$coord=PixelSearch(0,0,@DesktopWidth,@DesktopHeight,$color)
if @error=1 Then Exit 1
MouseClick("left",$coord[0],$coord[1])

WinWaitActive("Choisir une date")
WinWaitClose("Choisir une date")
WinWaitActive("Saisie de la Base de Donnée Journaliere pour J-n")
sleep(10000)

ShellExecute("BaseDeDonneeLundi.xlsx")
; Attendre la fenetre principal de la BaseDeDonnée
WinWaitActive("Base De Donnée du Lundi")
Donc, j'ouvre le programme exe et je me rend dans la fenêtre qui m’intéresse.
Je choisit ma date et là mes données de cette date d'affiche.
J'ouvre le fichier Excel.
Mais maintenant je ne vois pas comment comparer les valeurs comme indiqué sur mon schéma (image) plus haute.
J'aimerai : tant que dans le fichier excel la cellule est verte, regarder la valeur et la retrouver dans la listebox du programme de donnée EXE pour cliquer deux fois dessus.
Qu'en pensez vous ?

EN vous remerciant à tous par avance ;)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11658
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Comparer une valeur dans un excel et cliquer sur cette valeur dans un exe

#2

Message par Tlem »

Bonjour Mégane.
Étant donné que le bouton de la date est difficilement atteignable avec les outils classiques, je pense que la listeview va être tout aussi compliquée à atteindre.
Maintenant à vous de nous dire/montrer ce que AWIT vous trouve comme infos. ^^

Comme il l'a déjà été dit, il existe d'autres outils que AWIT pour révéler les informations d'une fenêtre.
Perso, j'aime bien Control Viewer de Yashied.
Vous le trouverez ici : https://www.autoitscript.com/forum/topi ... info-tool/

Mais sur des contrôles graphiques Windev, je doute que vous arriviez à un résultat satisfaisant.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
pmb
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mer. 17 févr. 2021 21:38
Status : Hors ligne

Re: [..] Comparer une valeur dans un excel et cliquer sur cette valeur dans un exe

#3

Message par pmb »

Fait un filtre par couleur sur excel ensuite tu copiera l'ensemble pour le recoler dans ta base de donner.
Exemple:
Winactivate("[CLASS:XLMAIN]")
Send("^c")
Winactivate("Programme de donnée exe")
Send("^v")
megane962
Niveau 1
Niveau 1
Messages : 10
Enregistré le : lun. 08 mars 2021 15:28
Status : Hors ligne

Re: [..] Comparer une valeur dans un excel et cliquer sur cette valeur dans un exe

#4

Message par megane962 »

Tlem a écrit : mer. 10 mars 2021 08:05 Bonjour Mégane.
Étant donné que le bouton de la date est difficilement atteignable avec les outils classiques, je pense que la listeview va être tout aussi compliquée à atteindre.
Maintenant à vous de nous dire/montrer ce que AWIT vous trouve comme infos. ^^

Comme il l'a déjà été dit, il existe d'autres outils que AWIT pour révéler les informations d'une fenêtre.
Perso, j'aime bien Control Viewer de Yashied.
Vous le trouverez ici : https://www.autoitscript.com/forum/topi ... info-tool/

Mais sur des contrôles graphiques Windev, je doute que vous arriviez à un résultat satisfaisant.
Merci Tlem, quand je lance CV.AU3 il affiche une erreur :
==> Unterminated string.:
<meta name="optimizely-datafile" content="{&quot;version&quot;: &quot;4&quot;, &quot;rollouts&quot;: [], &quot;typedAudiences&quot;: [], &quot;anonymizeIP&quot;: true, &quot;projectId&quot;: &quot;16737760170&quot;, &quot;variables&quot;: [], &quot;featureFlags&quot;: [], &quot;experiments&quot;: [], &quot;audiences&quot;: [{&quot;conditions&quot;: &quot;[\&quot;or\&quot;, {\&quot;match\&quot;: \&quot;exact\&quot;, \&quot;name\&quot;: \&quot;$opt_dummy_attribute\&quot;, \&quot;type\&quot;: \&quot;custom_attribute\&quot;, \&quot;value\&quot;: \&quot;$opt_dummy_value\&quot;}]&quot;, &quot;id&quot;: &quot;$opt_dummy_audience&quot;, &quot;name&quot;: &quot;Optimizely-Generated Audience for Backwards Compatibility&quot;}], &quot;groups&quot;: [{&quot;policy&quot;: &quot;random&quot;, &quot;trafficAllocation&quot;: [{&quot;entityId&quot;: &quot;20065350824&quot;, &quot;endOfRange&quot;: 10000}], &quot;experiments&quot;: [{&quot;status&quot;: &quot;Running&quot;, &quot;audienceIds&quot;: [], &quot;variations&quot;: [{&quot;variables&quot;: [], &quot;id&quot;: &quot;20061181493&quot;, &quot;key&quot;: &quot;control&quot;}, {&quot;variables&quot;: [], &quot;id&quot;: &quot;20046091568&quot;, &quot;key&quot;: &quot;most_popular&quot;}], &quot;id&quot;: &quot;20065350824&quot;, &quot;key&quot;: &quot;pricing_page&quot;, &quot;layerId&quot;: &quot;20047761391&quot;, &quot;trafficAllocation&quot;: [{&quot;entityId&quot;: &quot;20061181493&quot;, &quot;endOfRange&quot;: 5000}, {&quot;entityId&quot;: &quot;20046091568&quot;, &quot;endOfRange&quot;: 10000}], &quot;forcedVariations&quot;: {&quot;1693726779.1607624005&quot;: &quot;most_popular&quot;, &quot;b3d9f4f9910bc46c43a8d65ab83d8570&quot;: &quot;most_popular&quot;}}], &quot;id&quot;: &quot;19972601768&quot;}], &quot;attributes&quot;: [{&quot;id&quot;: &quot;16822470375&quot;, &quot;key&quot;: &quot;user_id&quot;}, {&quot;id&quot;: &quot;17143601254&quot;, &quot;key&quot;: &quot;spammy&quot;}, {&quot;id&quot;: &quot;18175660309&quot;, &quot;key&quot;: &quot;organization_plan&quot;}, {&quot;id&quot;: &quot;18813001570&quot;, &quot;key&quot;: &quot;is_logged_in&quot;}, {&quot;id&quot;: &quot;19073851829&quot;, &quot;key&quot;: &quot;geo&quot;}], &quot;botFiltering&quot;: false, &quot;accountId&quot;: &quot;16737760170&quot;, &quot;events&quot;: [{&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;17911811441&quot;, &quot;key&quot;: &quot;hydro_click.dashboard.teacher_toolbox_cta&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18124116703&quot;, &quot;key&quot;: &quot;submit.organizations.complete_sign_up&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18145892387&quot;, &quot;key&quot;: &quot;no_metric.tracked_outside_of_optimizely&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18178755568&quot;, &quot;key&quot;: &quot;click.org_onboarding_checklist.add_repo&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18180553241&quot;, &quot;key&quot;: &quot;submit.repository_imports.create&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18186103728&quot;, &quot;key&quot;: &quot;click.help.learn_more_about_repository_creation&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18188530140&quot;, &quot;key&quot;: &quot;test_event.do_not_use_in_production&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18191963644&quot;, &quot;key&quot;: &quot;click.empty_org_repo_cta.transfer_repository&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18195612788&quot;, &quot;key&quot;: &quot;click.empty_org_repo_cta.import_repository&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18210945499&quot;, &quot;key&quot;: &quot;click.org_onboarding_checklist.invite_members&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18211063248&quot;, &quot;key&quot;: &quot;click.empty_org_repo_cta.create_repository&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18215721889&quot;, &quot;key&quot;: &quot;click.org_onboarding_checklist.update_profile&quot;}, {&quot;experimentIds&q

>Exit code: 1    Time: 0.09496
megane962
Niveau 1
Niveau 1
Messages : 10
Enregistré le : lun. 08 mars 2021 15:28
Status : Hors ligne

Re: [..] Comparer une valeur dans un excel et cliquer sur cette valeur dans un exe

#5

Message par megane962 »

pmb a écrit : mer. 10 mars 2021 23:07 Fait un filtre par couleur sur excel ensuite tu copiera l'ensemble pour le recoler dans ta base de donner.
Exemple:
Winactivate("[CLASS:XLMAIN]")
Send("^c")
Winactivate("Programme de donnée exe")
Send("^v")
Je ne peux pas recoller dans le programme, je dois forcement choisir dans la liste l'élément similaire à celui de l'Excel.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11658
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Comparer une valeur dans un excel et cliquer sur cette valeur dans un exe

#6

Message par Tlem »

@Megane
Je viens de voir que les binaires ne sont plus accessibles sur le forum US et que le site de yashied n'est plus en ligne ...
Heureusement je les avais partagés ici.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
rgx
Niveau 4
Niveau 4
Messages : 52
Enregistré le : sam. 16 nov. 2019 17:53
Status : Hors ligne

Re: [..] Comparer une valeur dans un excel et cliquer sur cette valeur dans un exe

#7

Message par rgx »

Bonjour Megane,

C'est un peu plus compliqué qu'un simple copié/collé :-)

Déjà dans le document excel, il faut séléctionner les éléments en vert.
La librairie UDF Excel d'AutoIt ne peut accéder aux propriétés des cellules, il faut alors utiliser les composants COM
(https://www.autoitscript.com/wiki/Excel ... by_the_UDF)
(Note: En général, en application pro, on évite d'utiliser les couleurs, il est plus rationnel de mettre une colonne "drapeau".
Sans oublier que 10% de la population mondiale n'a pas la même perception des couleurs (cela pose des problèmes auxquels on ne pense pas souvent))

Ensuite, si tu ne peux accéder aux éléments de l'application de base de données par des raccourcis, ça se complique, mais c'est faisable:
il faut générer des images avec la même police et le même fond et utiliser ImageSearch.
Il faut en faire deux par éléments puisque la liste a des couleurs alternés (vert ou blanc)
Enfin, plus compliqué, si ta liste est plus grande que l'écran, il faudra aussi la faire défiler lors de la recherche.

Cependant, si l'application base de données est une application interne, il est plus simple de demander à celui qui l'a développé de créer un module "ligne de commande" auquel il suffit de passer le nom de fichier en paramètre.
De même sous Excel, faire un script VBA pour extraire les données dans un fichier texte.

:wink:
megane962
Niveau 1
Niveau 1
Messages : 10
Enregistré le : lun. 08 mars 2021 15:28
Status : Hors ligne

Re: [..] Comparer une valeur dans un excel et cliquer sur cette valeur dans un exe

#8

Message par megane962 »

Tlem a écrit : jeu. 11 mars 2021 22:11 @Megane
Je viens de voir que les binaires ne sont plus accessibles sur le forum US et que le site de yashied n'est plus en ligne ...
Heureusement je les avais partagés ici.
Merci nickel !
megane962
Niveau 1
Niveau 1
Messages : 10
Enregistré le : lun. 08 mars 2021 15:28
Status : Hors ligne

Re: [..] Comparer une valeur dans un excel et cliquer sur cette valeur dans un exe

#9

Message par megane962 »

rgx a écrit : ven. 12 mars 2021 09:17 Bonjour Megane,

C'est un peu plus compliqué qu'un simple copié/collé :-)

Déjà dans le document excel, il faut séléctionner les éléments en vert.
La librairie UDF Excel d'AutoIt ne peut accéder aux propriétés des cellules, il faut alors utiliser les composants COM
(https://www.autoitscript.com/wiki/Excel ... by_the_UDF)
(Note: En général, en application pro, on évite d'utiliser les couleurs, il est plus rationnel de mettre une colonne "drapeau".
Sans oublier que 10% de la population mondiale n'a pas la même perception des couleurs (cela pose des problèmes auxquels on ne pense pas souvent))

Ensuite, si tu ne peux accéder aux éléments de l'application de base de données par des raccourcis, ça se complique, mais c'est faisable:
il faut générer des images avec la même police et le même fond et utiliser ImageSearch.
Il faut en faire deux par éléments puisque la liste a des couleurs alternés (vert ou blanc)
Enfin, plus compliqué, si ta liste est plus grande que l'écran, il faudra aussi la faire défiler lors de la recherche.

Cependant, si l'application base de données est une application interne, il est plus simple de demander à celui qui l'a développé de créer un module "ligne de commande" auquel il suffit de passer le nom de fichier en paramètre.
De même sous Excel, faire un script VBA pour extraire les données dans un fichier texte.

:wink:
Merci, ce que j'ai pu faire pour le moment c'est ouvrir le fichier FIC qui contient c'est info avec un logiciel(HFDA).
Je vais pouvoir peu être faire sur autoit : si sur le Excel la colonne est verte, regarder cette valeur, la rechercher sur le logiciel(HFDA) qui me permet de voir le FIC et mettre un "1" dans la colonne de la ligne de la même "valeur".
Mais je ne vois pas à quoi ressemblerai le script ??? si j'arrive à faire cela, il me restera enfin à ouvrir le logiciel programme et cliquer sur imprimer car si les élément dont j'ai besoin on le chiffre "1" cela veut dire qu'elle seront imprimé.

Image

Auriez vous une idée de script pour la comparaison entre le Excel et le logiciel "
Fichiers joints
HFDA.png
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11658
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Comparer une valeur dans un excel et cliquer sur cette valeur dans un exe

#10

Message par Tlem »

Bonsoir Mégne.
D'après les informations que vous donnez, l'application pricipale est sous Windev.
Sur la plupart des applications développée en Windev, il y a en haut à droite des tableaux un icône qui permet l'export des données.
Peut être sera-t-il plus simple de travailler sur du fichier CSV ou texte. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
megane962
Niveau 1
Niveau 1
Messages : 10
Enregistré le : lun. 08 mars 2021 15:28
Status : Hors ligne

Re: [..] Comparer une valeur dans un excel et cliquer sur cette valeur dans un exe

#11

Message par megane962 »

Tlem a écrit : mar. 16 mars 2021 18:13 Bonsoir Mégne.
D'après les informations que vous donnez, l'application pricipale est sous Windev.
Sur la plupart des applications développée en Windev, il y a en haut à droite des tableaux un icône qui permet l'export des données.
Peut être sera-t-il plus simple de travailler sur du fichier CSV ou texte. ^^
Oui en effet, l'application de la base de donnée sous windev et je peux en effet exporter les données.
Mais votre idée serait donc d'exporter les données de les modifier et de les importer pour finir par imprimer ?
Le but final étant d'imprimer dans l'application sous windev des données ciblé préalablement. Je suis aussi obligé d'imprimer depuis l'application sous windev car celle-ci m'imprime ces données dans un format (trame, détails...) propre à ce logiciel.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11658
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Comparer une valeur dans un excel et cliquer sur cette valeur dans un exe

#12

Message par Tlem »

Bonsoir Mégane.
En fait, non, je n'ai pas d'idée spécifique, je donne des pistes qui pourraient peut être aider.
Mais sans pouvoir tester cette application, il est difficile de vous donner une solution.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre