[R] Problème de navigation dans Excel
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Problème de navigation dans Excel
Bonjour,
Je cherche à créer une macro sur AutoIt qui doit, entre autres, ouvrir des fichiers .csv (données) et .xlsm (classeur Excel gérant des macros VB) avec Excel2007, puis qui doit naviguer entre les différents fichiers ouverts pour y effectuer diverses actions.
J'utilise ExcelCOM_UDF.au3 pour ouvrir les fichiers, mais je n'arrive pas à naviguer à l'intérieur même d'Excel.
Existe-t-il une fonction le permettant ?
Merci.
Je cherche à créer une macro sur AutoIt qui doit, entre autres, ouvrir des fichiers .csv (données) et .xlsm (classeur Excel gérant des macros VB) avec Excel2007, puis qui doit naviguer entre les différents fichiers ouverts pour y effectuer diverses actions.
J'utilise ExcelCOM_UDF.au3 pour ouvrir les fichiers, mais je n'arrive pas à naviguer à l'intérieur même d'Excel.
Existe-t-il une fonction le permettant ?
Merci.
Re: [..] Problème de navigation dans Excel
Vraisemblablement AutoIt ne fait pas la différence entre mes deux classeurs Excels dont les titres de fenêtre sont pourtant bien différents (à l'aide d'un WinGetTitle j'obtiens "Microsoft Excel - classeur1.xlsm" d'un côté, et "Microsoft Excel - donnees.csv" de l'autre)
Là je suis vraiment bloqué et je ne sais plus quoi faire.
Là je suis vraiment bloqué et je ne sais plus quoi faire.
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [..] Problème de navigation dans Excel
Que voulez-vous faire en "navigant" sur Excel ?
Si vous voulez lire et écrire du texte ou des formules dans des cellules, changer la couleur du texte, c'est possible avec ExcelCOM_UDF.au3
Si vous voulez lire et écrire du texte ou des formules dans des cellules, changer la couleur du texte, c'est possible avec ExcelCOM_UDF.au3
Re: [..] Problème de navigation dans Excel
Quand je dis "naviguer", c'est par exemple aller dans la feuille1 du classeur1, y rechercher des valeurs, les copier, puis aller dans la feuille1 du classeur2 et les coller.
Pour visualiser une feuille d'un classeur, il n'y a pas de problème ; mais c'est pour aller d'un classeur à l'autre que je n'ai pas trouvé de solution.
Pour visualiser une feuille d'un classeur, il n'y a pas de problème ; mais c'est pour aller d'un classeur à l'autre que je n'ai pas trouvé de solution.
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [..] Problème de navigation dans Excel
Je pense que les fonctions suivantes devraient vous suffire :
- ouvrir un classeur _ExcelBookOpen
- enregistrer un classeur _ExcelBookSave ou _ExcelBookSaveAs
- fermer le classeur _ExcelBookClose
- changer de feuille de classeur _ExcelSheetActivate
- copier des valeurs _ExcelCopy
- les coller _ExcelPaste
- lire des valeurs _ExcelReadCell ou _ExcelReadArray
- ouvrir un classeur _ExcelBookOpen
- enregistrer un classeur _ExcelBookSave ou _ExcelBookSaveAs
- fermer le classeur _ExcelBookClose
- changer de feuille de classeur _ExcelSheetActivate
- copier des valeurs _ExcelCopy
- les coller _ExcelPaste
- lire des valeurs _ExcelReadCell ou _ExcelReadArray
Re: [..] Problème de navigation dans Excel
Et pour passer d'un classeur à l'autre, existe-t-il une fonction du même genre ?
(Je n'ai pas trop envie d'ouvrir mon classeur1, d'y copier des données de ma feuille1, de refermer mon classeur1, puis d'ouvrir mon classeur2, d'y coller les données, de sauver mon classeur2, de le refermer, d'ouvrir mon classeur1, d'y copier des données ... et cela une petite vingtaine de fois!!!)
(Je n'ai pas trop envie d'ouvrir mon classeur1, d'y copier des données de ma feuille1, de refermer mon classeur1, puis d'ouvrir mon classeur2, d'y coller les données, de sauver mon classeur2, de le refermer, d'ouvrir mon classeur1, d'y copier des données ... et cela une petite vingtaine de fois!!!)
- Tlem
- Site Admin
- Messages : 11796
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Problème de navigation dans Excel
C'est la fonction _ExcelSheetActivate qui à été évoquée précédemment.
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é".
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é".
Re: [R] Problème de navigation dans Excel
Voici mon code modifié suite à vos indications :
En procédant ainsi, la feuille "traitement_donnees" du classeur suivi.xlsm ne s'affiche pas ; la feuille "donnees" du classeur donnees.csv quant à elle s'affiche.
Ma syntaxe est-elle mauvaise ? Comment faire pour remédier à ce problème ?
PS: j'utilise Excel2007
Code : Tout sélectionner
; Inclusion des modules nécessaires
#include <ExcelCOM_UDF.au3>
; Déclaration des variables
$sfichier1_path = "C:\dossier\suivi.xlsm"
$sfichier2_path = "C:\dossier\donnees.csv"
$vSheet1 = "traitement_donnees"
$vSheet2 = "donnees"
; Code
$oclasseur_suivi = _ExcelBookOpen($sfichier1_path)
WinWaitActive("Microsoft Excel - suivi.xlsm")
$oclasseur_donnees = _ExcelBookOpen($sfichier2_path)
WinWaitActive("Microsoft Excel - donnees.csv")
_ExcelSheetActivate($oclasseur_suivi, $vSheet1)
MsgBox(0, "Message test", "Contrôle #" & 1.1)
_ExcelSheetActivate($oclasseur_donnees, $vSheet2)
MsgBox(0, "Message test", "Contrôle #" & 1.2)
Ma syntaxe est-elle mauvaise ? Comment faire pour remédier à ce problème ?
PS: j'utilise Excel2007
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [..] Problème de navigation dans Excel
Cette fonction permet de changer de feuille au sein d'un classeur et non pas de classeur.Tlem a écrit :C'est la fonction _ExcelSheetActivate qui à été évoquée précédemment.
En revanche, il est tout à fait possible d'ouvrir plusieurs classeurs simultanément en utilisant des handle différents :
Code : Tout sélectionner
$oXls1 = _ExcelBookOpen("fichier1.xls", 0)
$oXls2 = _ExcelBookOpen("fichier2.xls", 0)
; actions à effectuer sur les classeurs
_ExcelBookClose($oXls1, 0)
_ExcelBookClose($oXls2, 0)
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [R] Problème de navigation dans Excel
A priori, si vous voulez seulement lire des valeurs dans des cellules, les copier et les coller dans d'autres cellules, il n'est pas nécessaire d'afficher la fenêtre d'excel. Pour cacher la fenêtre, ouvrez excel comme ceci :zozisson a écrit :En procédant ainsi, la feuille "traitement_donnees" du classeur suivi.xlsm ne s'affiche pas ; la feuille "donnees" du classeur donnees.csv quant à elle s'affiche.
Code : Tout sélectionner
_ExcelBookOpen("fichier1.xls", [b]0[/b])