stopsoftwarepatents.eu petition banner

AutoIt Français

Communauté Francophone AutoIt
* Connexion   * M’enregistrer

Heures au format UTC + 1 heure


Règles du forum

Poster un nouveau sujet Répondre au sujet  [ 9 messages ] 
Auteur Message
Hors ligne
Niveau 3
Niveau 3
Avatar de l’utilisateur
Inscription: Ven 03 Juil 2009 10:39
Messages: 41

Dernier message
Sujet du message: [Tuto] Utiliser Excel avec Autoit
MessagePosté: Jeu 09 Juil 2009 16:06 

Bonjour,

    Présentation :
      Dans ce tutoriel nous allons aborder les mécanismes de communication entre Excel et AutoIT, autrement dit nous allons voir comment utiliser les méthodes issue du modèle Objet Excel dans AutoIT. Certes il existe de nombreux UDF, comme ExcelCOM permettant de manipuler Excel ces mêmes fonctions semblent d'ailleurs avoir été intégré à la version d'AutoIT 3.3, mais en utilisant ces fonctions on peut se retrouver bloquer sur certaines fonctionnalités non prise en compte dans la librairie et surtout on ne comprend absolument pas ce qui se passe derrière. Comprendre ces mécanismes de communication c'est se donner les moyens d'adapter la libraire à ces besoins.

    Pré-requis :
    • Connaître le modèle Objet Excel - si vous ne le connaissez pas je vous propose un peu de lecture ici
    • Quelques connaissances succinctes en VBA
    • Les bases d'utilisation de la programmation AutoIT
    • Avoir Excel installé sur la machine faisant tourné le script... cela va de soit


    Introduction

    Nous allons donc voir en premier temps présenter Microsoft COM et plus particulièrement le processus d'Automation COM que l'on va utiliser dans AutoIT pour manipuler automatiquement Excel. On fera un rappel rapide sur le modèle Objet Excel.


    1 - Microsoft COM et Excel
      Microsoft COM (Component Object Model) est un standard permettant de définir des API objet, c'est-à-dire permettant à des applications de communiquer par l'intermédiaire d'objets possédant un certain nombre de méthodes et de propriétés publiques. On rappelle qu'il existe deux caractéristiques à la notion d'Objet, les propriétés qui caractérise l'objet et les méthodes qui définissent des fonctions internes de cet objet. On peut citer les objets ActiveX qui sont un type particulier d'objets COM.

      Microsoft COM fournit des mécanismes permettant des liens entre applications, parmi lesquels :
      • liaisons dynamiques entre applications appelés OLE (Object Link and Embedding) pour la liaison et incorporation d'objets par exemple de lier un fichier tableur dans un document
      • mécanismes d'échanges de messages dynamiques entre applications, appelés DDE (Dynamic Data Exchange).
      • mécanismes d'automates (automation) permettant de prendre contrôle d'une application à distance.

      De nombreuses applications sous environnement Windows possèdent une interface COM donnant la possibilité d'invoquer leur méthode dans un programme. C'est notamment le cas pour Mircrosoft Office et en particulier pour Excel. Nous allons surtout nous intéresser au mécanisme d'automation COM d'Excel par la suite.


    2 - Notions sur le modèle Objet Excel
      Je ne vais pas vous faire un rappel total du modèle Objet Excel mais au moins vous présenter rapidement l'essentielle à connaître.

      Classe, Objet, Attribut, Méthode et Collection
      Excel possède une hiérarchie d'objets organisée en arbre et chaque objet possède des membres (attributs+méthodes). Les attributs sont des variables typés (Int, Float, String, Object ...) ou des collections et permettent de décrire l'objet. Une collection d'objet est l'ensemble des objets d'une classe, tandis qu'une classe d'un objet désigne la définition commune d'un ensemble d'objets (dans Excel une collection de l'objet Object sera nommé Objects). Enfin chaque objet possède aussi des méthodes qui décrivent les comportements de l'objet.

      Quelques exemples de ces notions dans Excel :
      • Un objet de la classe Workbook possède la méthode SaveAs pour sauvegarder le classeur dans un chemin spécifique. Il possède aussi l'attribut ActiveSheet qui est une String contenant la feuille courante active de ce WorkBook (L'objet Workbook possède évidement bien d'autres membres)
      • La collection WorkBooks renvoie tous les objets Workbook, autrement dit tous les classes ouverts.
      • La collection WorkSheets renvoie toutes les feuilles d'un objet Workbook.

      Instanciation
      Lorsqu'on créer une instance d'une classe, c'est à dire un objet. Cet objet possède tous les attributs et méthodes définies dans la classe de l'objet. Il s'agit de l'étape d'instanciation en programmation objet. C'est pour ça qu'on confondra fréquemment le terme objet avec le terme instance. Une instance d'une classe est un objet.

      Hiérarchie du modèle objet Excel
      Tout en haut du modèle objet Excel ce trouve l'objet Application. Il possède de nombreux attributs et méthodes dont notamment la collection Workbooks qui est un attribut de l'objet Application et qui désigne l'ensemble des classeurs ouverts (Instance Workbook). Une instance Workbook correspond à un classeur et donc à un fichier xls. Une instance Worksheet correspond à une feuille de calcul. Les objets de type Worksheet sont référencés dans la collection Worksheets d'une instance Workbook. Une instance Range est une collection de cellules présentes dans une feuille de calcul.

      Image

      Si vous voulez plus de lecture sur le modèle objet Excel c'est par la :


    3 - Automation Excel dans AutoIT
      Pour pouvoir prendre la main sur Excel dans AutoIT, il suffit de taper la ligne de code suivante
      Code
      $oExcel = ObjCreate("Excel.Application")
      La fonction ObjCreate d'autoIT permet de créer une référence sur le COM Object de l'application ciblé (ici dans l'exemple, il s'agit d'Excel) et ainsi d'accéder à ces méthodes et attributs. Autrement dit avec cette fonction, on va atteindre le point le plus haut du modèle objet Excel c'est à dire l'objet Application, à partir duquel on va pouvoir utiliser toutes les membres que l'on veut. Si on exécute juste cette ligne de code, on peut contrôler dans le gestionnaire de tâche de Windows qu'un processus Excel a bien été lancé.

      Par exemple on va utiliser l'attribut Visible de l'instance $oExcel pour rendre l'application Excel visible. Il suffit d'utiliser le caractère "." pour appliquer un membre sur une instance, ainsi :
      Code
      $oExcel.Visible = 1 ; Rend l'instance $oExcel visible
      On peut aussi utiliser la méthode Add de la collection Worbooks qui est l'attribut de l'instance $oExcel pour ajouter un nouveau workbook dans cette instance. On rappelle qu'un Workbook est un classeur et correspond donc à un fichier excel xls.
      Code
      $oExcel.WorkBooks.Add ; Ajoute un nouveau workbook
      Pour appliquer plusieurs attributs et méthodes en même temps sur l'instance $oExcel, AutoIT nous fournit les mots-clefs WITH [...] ENDWITH qui s'utilise de la manière suivante :
      Code
      ; Création d'un nouveau fichier Excel avec une seul feuille (onglet) nommé "ONGLET_SOURCE"
      ; Et dont la cellule "A1" contient la string "I believe i can fly !!!"
      Local $oExcel = ObjCreate("Excel.Application")
      With $oExcel
          .Visible = 1
          .WorkBooks.Add
      EndWith
      Pas besoin de plus pour comprendre le processus d'automation COM avec Excel, c'est la connaissance du modèle Objet Excel qui va vous permettre de programmer ce que vous voulez... autrement dit tout ce qu'un humain peut faire dans Excel correspond à la modification d'attributs d'objets Excel ou à l'utilisation de méthodes.


    Hacks Excel

    Dans la suite du tutoriel, je ne vais pas vous donner la liste de touts les attributs et méthodes possibles mais celles qui me paraissent pertinentes à travers le descriptif de plusieurs exemples.


    1 - Créer une feuille Excel
    Spoiler pour :
      Code
      ; Création d'un nouveau fichier Excel avec une seul feuille (onglet) nommé "ONGLET_SOURCE"
      Local $oExcel = ObjCreate("Excel.Application")
      With $oExcel
          .SheetsInNewWorkbook = 1
          .Visible = 1
          .WorkBooks.Add
          .ActiveWorkbook.Worksheets(1).Name = "ONGLET_SOURCE"
          .ActiveWorkbook.Worksheets(1).Cells(1,1) = "I believe i can fly !!!"
      EndWith
      L'attribut SheetsInNewWorkbook spécifie le nombre de feuille par défaut créer par défaut avec la méthode Add sur la collection WorkBooks, ainsi une seul feuille est créer dans le classeur.

      Ensuite pour renommer le nom de la feuille on utilise l'attribut Name sur le classeur courant ActiveWorkbook sur la feuille qui nous concerne Worksheets(1). On remarque qu'on aurait pu identifier la feuille d'une autre manière qu'avec son numéro dans la collection avec ActiveWorkSheet par exemple. En fait il existe toujours plusieurs manières pour se placer dans un noeud de l'arbre objet Excel.

      Et enfin on écrit dans la cellule A1 la string "I believe i can fly !!!"
    2 - Sauvegarder sous
    Spoiler pour :
      Code
      ; Création d'un nouveau fichier Excel avec une seul feuille (onglet) nommé "ONGLET_SOURCE"
      Local $oExcel = ObjCreate("Excel.Application")
      With $oExcel
          .SheetsInNewWorkbook = 1
          .Visible = 1
          .WorkBooks.Add
          .ActiveWorkbook.Worksheets(1).Name = "ONGLET_SOURCE"
          .ActiveWorkbook.Worksheets(1).Cells(1,1) = "I believe i can fly !!!"
      EndWith

      Sleep(1000)

      Local $filename = @WorkingDir&"\saveas_excel.xls" ; Chemin relatif du fichier où le classer va être sauvegarder
      Local $xlNormal = 1
      $oExcel.Application.DisplayAlerts = 0 ; Désactive message d'alerte
      $oExcel.Application.ScreenUpdating = 0
      $oExcel.ActiveWorkBook.SaveAs($filename, $xlNormal, Default, Default, Default, Default, 2, 1)
      $oExcel.Quit

      ;===============================================================================================
      ; Signature de la méthode SaveAs
      ;
      ;   SaveAs (
      ;       [OptionalAttribute] Object Filename,
      ;       [OptionalAttribute] Object FileFormat,
      ;       [OptionalAttribute] Object Password,
      ;       [OptionalAttribute] Object WriteResPassword,
      ;       [OptionalAttribute] Object ReadOnlyRecommended,
      ;       [OptionalAttribute] Object CreateBackup,
      ;       [OptionalAttribute] XlSaveAsAccessMode AccessMode,
      ;       [OptionalAttribute] Object ConflictResolution,
      ;       [OptionalAttribute] Object AddToMru,
      ;       [OptionalAttribute] Object TextCodepage,
      ;       [OptionalAttribute] Object TextVisualLayout,
      ;       [OptionalAttribute] Object Local
      ;   )
      ;
      ; Paramètres
      ;
      ; Filename : Nom du fichier à enregistrer. Vous pouvez inclure un chemin d'accès complet ; si vous ne le faites pas, Microsoft Office Excel enregistre le fichier dans le dossier actif.
      ; FileFormat : Format de fichier à utiliser lorsque vous enregistrez le fichier. Pour obtenir la liste des choix valides, consultez la propriété FileFormat. Pour un fichier existant, le format par défaut est le dernier format de fichier spécifié ; pour un nouveau fichier, la valeur par défaut est le format de la version d'Excel utilisée.
      ; Password : Chaîne respectant la casse (pas plus de 15 caractères) qui indique le mot de passe de protection à donner au fichier.
      ; WriteResPassword : Mot de passe de réservation en écriture pour ce fichier. Si un fichier est enregistré avec le mot de passe et que celui-ci n'est pas fourni à l'ouverture du fichier, ce dernier s'ouvre en lecture seule.
      ; ReadOnlyRecommended : true pour afficher un message lorsque le fichier est ouvert, recommandant l'ouverture du fichier en lecture seule.
      ; CreateBackup : true pour créer un fichier de sauvegarde.
      ; AccessMode : Une des valeurs XlSaveAsAccessMode.
      ;                   $xlNoChange     = Leaves the sharing mode as it is (default) (numeric value = 1)
      ;                   $xlExclusive    = Disables sharing on the workbook (numeric value = 3)
      ;                   $xlShared       = Enable sharing on the workbook (numeric value = 2)
      ; ConflictResolution : Une des valeurs XlSaveConflictResolution.
      ;                   $xlUserResolution       = Pop up a dialog box asking the user how to resolve (numeric value = 1)
      ;                   $xlLocalSessionChanges  = The local user's changes are always accepted (default) (numeric value = 2)
      ;                   $xlOtherSessionChanges  = The local user's changes are always rejected (numeric value = 3)
      ; AddToMru : true pour ajouter ce classeur à la liste des fichiers récemment utilisés. La valeur par défaut est false.
      ; TextCodepage : Non utilisé dans la version anglaise (États-Unis) d'Excel.
      ; TextVisualLayout : Non utilisé dans la version anglaise (États-Unis) d'Excel.
      ; Local : true enregistre les fichiers par rapport à la langue d'Excel (y compris les paramètres du panneau de configuration). false (par défaut) enregistre les fichiers par rapport à la langue de Visual Basic pour Applications (VBA).
      ;===============================================================================================
       

    3 - Compter le nombre de colonnes et de lignes utilisées dans une feuille
    Spoiler pour :
      Code
      ; Création d'un nouveau fichier Excel avec une seul feuille (onglet) nommé "ONGLET_SOURCE"
      Local $oExcel = ObjCreate("Excel.Application")
      With $oExcel
          .SheetsInNewWorkbook = 1
          .Visible = 1
          .WorkBooks.Add
          .ActiveWorkbook.Worksheets(1).Name = "ONGLET_SOURCE"
          .ActiveWorkbook.Worksheets(1).Cells(1,1) = "I believe i can fly !!!"
      EndWith

      ; Ecriture dans la feuille "ONGLET_SOURCE" de 5 colonnes et de 4 lignes dont un header (titre colonne)
      Local $array_1[5] = ["colonne1","colonne2","colonne3","colonne4","colonne5"]
      Local $array_2[5] = ["val11","val12","val13","val14","val15"]
      Local $array_3[5] = ["val21","val22","val23","val24","val25"]
      Local $array_4[5] = ["val31","val32","val33","val34","val35"]
      For $i = 0 To Ubound($array_1) - 1
          $oExcel.Activesheet.Cells(1,($i+1)).Value = $array_1[$i]
          $oExcel.Activesheet.Cells(2,($i+1)).Value = $array_2[$i]
          $oExcel.Activesheet.Cells(3,($i+1)).Value = $array_3[$i]
          $oExcel.Activesheet.Cells(4,($i+1)).Value = $array_4[$i]
      Next

      ; Compte le nombre de colonnes/lignes actives dans la feuille "ONGLET_SOURCE"
      Local $nb_colonne = $oExcel.ActiveSheet.UsedRange.Columns.Count ; Compte le nombre de colonnes actives
      Local $nb_ligne   = $oExcel.ActiveSheet.UsedRange.Rows.Count    ; Compte le nombre de lignes actives
      MsgBox(0, "Nombre colonne(s)/ligne(s) actives dans la feuille", _
                ""&$nb_colonne&" colonne(s) actives"&@CRLF&$nb_ligne&" ligne(s) actives")

    4 - Autofit sur les colonnes d'une feuille
    Spoiler pour :
      Code
      ; Création d'un nouveau fichier Excel avec une seul feuille (onglet) nommé "ONGLET_SOURCE"
      Local $oExcel = ObjCreate("Excel.Application")
      With $oExcel
          .SheetsInNewWorkbook = 1
          .Visible = 1
          .WorkBooks.Add
          .ActiveWorkbook.Worksheets(1).Name = "ONGLET_SOURCE"
          .ActiveWorkbook.Worksheets(1).Cells(1,1) = "I believe i can fly !!!"
      EndWith

      ; Ecriture dans la feuille "ONGLET_SOURCE" de 2 colonnes et de 2 lignes dont un header (titre colonne)
      Local $array_1[5] = ["colonne1","colonne2","colonne3","colonne4","colonne5"]
      Local $array_2[5] = ["Ceci est un test 11","Ceci est un test avec un champ de texte assez long","I believe i can fly","I believe i can touch the sky","Ceci est un test avec un champ de texte assez long"]
      For $i = 0 To Ubound($array_1) - 1
          $oExcel.Activesheet.Cells(1,($i+1)).Value = $array_1[$i]
          $oExcel.Activesheet.Cells(2,($i+1)).Value = $array_2[$i]
      Next

      ; Autofit des colonnes du document $oExcel
      Sleep(2000)
      $oExcel.Cells.EntireColumn.AutoFit

    5 - Copier une feuille dans une nouvelle feuille du même classeur
    Spoiler pour :
      Code
      ; Création d'un nouveau fichier Excel avec une seul feuille (onglet) nommé "ONGLET_SOURCE"
      ; Et dont la cellule "A1" contient la string "I believe i can fly !!!"
      Local $oExcel = ObjCreate("Excel.Application")
      With $oExcel
          .SheetsInNewWorkbook = 1
          .Visible = 1
          .WorkBooks.Add
          .ActiveWorkbook.Worksheets(1).Name = "ONGLET_SOURCE"
          .ActiveWorkbook.Worksheets(1).Cells(1,1) = "I believe i can fly !!!"
      EndWith

      ; Copie de la feuille "ONGLET_SOURCE" dans "ONGLET_SOURCE (2)"
      $oExcel.Sheets("ONGLET_SOURCE").Copy(Default, $oExcel.Worksheets(1) )

      ;===============================================================================================
      ; Signature de la méthode Worksheet.Copy
      ;
      ;       Worksheet.Copy (
      ;           [OptionalAttribute] Object Before,
      ;           [OptionalAttribute] Object After
      ;       )
      ;
      ; Before = La feuille avant laquelle la feuille copiée sera placée. Vous ne pouvez
      ;          pas spécifier Before si vous spécifiez After.
      ; After  = La feuille après laquelle la feuille copiée sera placée. Vous ne pouvez
      ;          pas spécifier After si vous spécifiez Before.
      ;
      ; On utilise le mot clé Autoit "Default" pour le paramètre missing Before ou After.
      ;===============================================================================================

    6 - Effectuer un tri sur une colonne
    Spoiler pour :
      Code
      ; Création d'un nouveau fichier Excel avec une seul feuille (onglet) nommé "ONGLET_SOURCE"
      Local $oExcel = ObjCreate("Excel.Application")
      With $oExcel
          .SheetsInNewWorkbook = 1
          .Visible = 1
          .WorkBooks.Add
          .ActiveWorkbook.Worksheets(1).Name = "ONGLET_SOURCE"
      EndWith

      ; Ecriture dans la feuille "ONGLET_SOURCE" de 5 colonnes et de 4 lignes dont un header (titre colonne)
      Local $array_1[5] = ["Id","Nom","Prénom","Age","Info"]
      Local $array_2[5] = ["0001","Dylan","Bob","35","Chanteur"]
      Local $array_3[5] = ["0002","Lebesgue","Henri","64","Maths"]
      Local $array_4[5] = ["0003","Boulet","Boulet","22","Dessinateur"]
      For $i = 0 To Ubound($array_1) - 1
          $oExcel.Activesheet.Cells(1,($i+1)).Value = $array_1[$i]
          $oExcel.Activesheet.Cells(2,($i+1)).Value = $array_2[$i]
          $oExcel.Activesheet.Cells(3,($i+1)).Value = $array_3[$i]
          $oExcel.Activesheet.Cells(4,($i+1)).Value = $array_4[$i]
      Next

      ; Trier le fichier par ordre croissant de la colonne "AGE" sans prendre en compte la ligne header (titre colonne)
      Local $nb_colonne = $oExcel.ActiveSheet.UsedRange.Columns.Count ; Compte le nombre de colonnes actives
      Local $nb_ligne   = $oExcel.ActiveSheet.UsedRange.Rows.Count    ; Compte le nombre de lignes actives
      $oExcel.Range($oExcel.Cells(2,1), $oExcel.Cells($nb_ligne,$nb_colonne)).Sort ($oExcel.Range("D1"),1)


      ;===============================================================================================
      ; Signature de la méthode NamedRange.Sort
      ;
      ;       NamedRange.Sort (
      ;           [OptionalAttribute] Object Key1,
      ;           [OptionalAttribute] XlSortOrder Order1,
      ;           [OptionalAttribute] Object Key2,
      ;           [OptionalAttribute] Object Type,
      ;           [OptionalAttribute] XlSortOrder Order2,
      ;           [OptionalAttribute] Object Key3,
      ;           [OptionalAttribute] XlSortOrder Order3,
      ;           [OptionalAttribute] XlYesNoGuess Header,
      ;           [OptionalAttribute] Object OrderCustom,
      ;           [OptionalAttribute] Object MatchCase,
      ;           [OptionalAttribute] XlSortOrientation Orientation,
      ;           [OptionalAttribute] XlSortMethod SortMethod,
      ;           [OptionalAttribute] XlSortDataOption DataOption1,
      ;           [OptionalAttribute] XlSortDataOption DataOption2,
      ;           [OptionalAttribute] XlSortDataOption DataOption3
      ;           )
      ;
      ; Paramètres
      ;----------------------------------------------------------------------------------------------------------
      ;         Key1 = Premier champ de tri représentant un nom de plage (Exemple : "Dept" ou Cells(1, 1), "A1")
      ;       Order1 = Ordre de tri de Key1 (xlDescending = 0 pour ordre décroissant et xlAscending = 1 pour ordre croissant)
      ;         Key2 = Deuxième champ de tri représentant un nom de plage.
      ;         Type = Spécifie quels éléments doivent être triés, à utiliser uniquement lors du tri de rapports PivotTable.
      ;                L'argument Type prend un des valeurs XlSortType suivantes :
      ;                   - xlSortLabels. Trie le rapport PivotTable par étiquettes.
      ;                   - xlSortValues. Trie le rapport PivotTable par valeurs.
      ;       Order2 = Ordre de tri de Key2, ne peut pas être utilisé lors du tri de rapports PivotTable (xlDescending=0 et xlAscending=1)
      ;         Key3 = Troisième champ de tri sous la forme de texte. Ne peut pas être utilisé lors du tri de rapports PivotTable.
      ;       Order3 = Ordre de tri de Key3, ne peut pas être utilisé lors du tri de rapports PivotTable (xlDescending=0 et xlAscending=1)
      ;       Header = Indique si la première ligne contient un header, ne peut pas être utilisé lors du tri de rapports PivotTable.
      ;                Il peut s'agir de l'une des valeurs XlYesNoGuess suiantes :
      ;                   - xlGuess : Laisse Excel déterminer s'il y a un en-tête et où il se trouve, le cas échéant.
      ;                   - xlNo    : La plage entière doit être triée.
      ;                   - xlYes   : La plage entière ne doit pas être triée (présence d'un header)
      ;  OrderCustom = C'est un offset d'entier base 1 pour la liste des ordres de tri personnalisés, s'il est omis un tri normal est utilisé
      ;    MatchCase = True pour effectuer un tri respectant la casse et False sinon, ne peut pas être utilisé lors du tri de rapports PivotTable.
      ;  Orientation = Sens du tri, prend une des valeurs de XlSortOrientation suivantes :
      ;                   - xlSortRows. Effectue le tri par ligne.
      ;                   - xlSortColumns. Effectue le tri par colonne.
      ;   SortMethod = Type de tri. Certaines de ces constantes peuvent ne pas être disponibles, selon la prise en charge
      ;                linguistique (anglais des États-Unis, par exemple) que vous avez sélectionnée ou installée. Il peut
      ;                s'agir de l'une des valeurs XlSortMethod suivantes :
      ;                   - xlStroke. Tri basé sur la quantité de traits dans chaque caractère.
      ;                   - xlPinYin. Ordre de tri du chinois phonétique pour les caractères.
      ;  DataOption1 = Spécifie comment trier le texte dans key1. Ne peut pas être utilisé lors du tri de rapports PivotTable.
      ;                Il peut s'agir de l'une des valeurs XlSortDataOption suivantes :
      ;                   - xlSortTextAsNumbers. Traite le texte comme des données numériques pour le tri.
      ;                   - xlSortNormal. Trie les données numériques et les données textuelles séparément.
      ;  DataOption2 = Spécifie comment trier le texte dans key2. Ne peut pas être utilisé lors du tri de rapports PivotTable.
      ;  DataOption3 = Spécifie comment trier le texte dans key3. Ne peut pas être utilisé lors du tri de rapports PivotTable.
      ;----------------------------------------------------------------------------------------------------------
      ;
      ; Les paramètres de Header, Order1, Order2, Order3, OrderCustom et Orientation sont enregistrés, pour la feuille
      ; de calcul spécifique, chaque fois que vous utilisez cette méthode. Si vous ne spécifiez pas de valeurs pour ces
      ; arguments la prochaine fois que vous appelez la méthode, les valeurs enregistrées sont utilisées. Définissez
      ; explicitement ces arguments chaque fois vous utilisez cette méthode, si vous choisissez de ne pas utiliser les
      ; valeurs enregistrées.
      ;
      ; Les chaînes de texte qui ne sont pas convertibles en données numériques sont triées normalement.
      ;
      ; Si aucun argument n'est défini avec cette méthode, Excel triera la sélection dans l'ordre croissant.
      ;
      ;===============================================================================================

    7 - Utiliser un filtre élaboré Excel
    Spoiler pour :
      Code
      ; Création d'un nouveau fichier Excel avec une seul feuille (onglet) nommé "SOURCE"
      Local $oExcel = ObjCreate("Excel.Application")
      With $oExcel
          .SheetsInNewWorkbook = 1
          .Visible = 1
          .WorkBooks.Add
          .ActiveWorkbook.Worksheets(1).Name = "SOURCE"
      EndWith

      ; Ecriture dans la feuille "ONGLET_SOURCE" de 5 colonnes et de 8 lignes dont un header (titre colonne)
      Local $array_1[5] = ["Id","Nom","Prénom","Age","Info"]
      Local $array_2[5] = ["0001","Dylan","Bob","35","Chanteur"]
      Local $array_3[5] = ["0002","Lebesgue","Henri","64","Maths"]
      Local $array_4[5] = ["0003","Boulet","Boulet","22","Dessinateur"]
      Local $array_5[5] = ["0004","Loisel","Regis","45","Dessinateur"]
      Local $array_6[5] = ["0005","Larcenet","Manu","26","Dessinateur"]
      Local $array_7[5] = ["0006","Bilal","Enki","34","Dessinateur"]
      Local $array_8[5] = ["0007","Bob","Bob","12","Eponge"]
      Local $array_9[5] = ["0008","Brassens","Georges","45","Chanteur"]
      For $i = 0 To Ubound($array_1) - 1
          $oExcel.Activesheet.Cells(1,($i+1)).Value = $array_1[$i]
          $oExcel.Activesheet.Cells(2,($i+1)).Value = $array_2[$i]
          $oExcel.Activesheet.Cells(3,($i+1)).Value = $array_3[$i]
          $oExcel.Activesheet.Cells(4,($i+1)).Value = $array_4[$i]
          $oExcel.Activesheet.Cells(5,($i+1)).Value = $array_5[$i]
          $oExcel.Activesheet.Cells(6,($i+1)).Value = $array_6[$i]
          $oExcel.Activesheet.Cells(7,($i+1)).Value = $array_7[$i]
          $oExcel.Activesheet.Cells(8,($i+1)).Value = $array_8[$i]
          $oExcel.Activesheet.Cells(9,($i+1)).Value = $array_9[$i]
      Next

      ; Création d'un nouvel onglet qui va contenir le filtre elaboré
      $oExcel.ActiveWorkBook.WorkSheets.Add.Activate
      $oExcel.ActiveSheet.Name = "FILTRE_ELABORE"

      ; Création du filtre élaboré dans cet onglet
      ; Le filtre recupere les noms commencant par la lettre B, dont l'age est>30 et qui sont Dessinateur ou Chanteur
      ; Pour plus d'informations sur l'élaboration des filtres elaborées, gogogoogle ^^
      Local $filtre_array_header[3]      = ["Nom"     , "Age"     , "Info"]
      Local $filtre_array_contrainte1[3] = ["B*"      , ">30"     , "Dessinateur"]
      Local $filtre_array_contrainte2[3] = ["B*"      , ">30"     , "Chanteur"]
      For $i = 0 To Ubound($filtre_array_header) - 1
          $oExcel.Activesheet.Cells(1,($i+1)).Value = $filtre_array_header[$i]
          $oExcel.Activesheet.Cells(2,($i+1)).Value = $filtre_array_contrainte1[$i]
          $oExcel.Activesheet.Cells(3,($i+1)).Value = $filtre_array_contrainte2[$i]
      Next

      ; Application du filtre elaboré de l'onglet "FILTRE_ELABORE" sur l'onglet "ONGLET_SOURCE"
      $oExcel.ActiveWorkbook.Sheets("SOURCE").Select()
      Local $nb_colonne = $oExcel.ActiveSheet.UsedRange.Columns.Count ; Compte le nombre de colonnes actives de "ONGLET_SOURCE"
      Local $nb_ligne   = $oExcel.ActiveSheet.UsedRange.Rows.Count    ; Compte le nombre de lignes actives de "ONGLET_SOURCE"
      Local $xlFilterInPlace = 1 ; Constante VBA = Leave data in place for AdvancedFilter
      $oExcel.Sheets("SOURCE").Range( _
          $oExcel.Cells(1,1), $oExcel.Cells($nb_ligne+1,$nb_colonne+1) _
      ).AdvancedFilter( _
          $xlFilterInPlace, $oExcel.Sheets("FILTRE_ELABORE").Range("A1:C3"), false )

      ; Copie des données filtrées de "ONGLET_SOURCE" dans un nouvel onglet "ONGLET_FILTREE"
      $oExcel.ActiveWorkBook.WorkSheets.Add.Activate          ; Création d'un nouvel onglet
      $oExcel.ActiveSheet.Name = "FILTREE_INDIRECT"   ; Renomme le nouvel onglet créer en "ONGLET_FILTREE"
      $oExcel.ActiveWorkbook.Sheets("SOURCE").Select() ; Activation de l'onglet "ONGLET_SOURCE"
      $oExcel.Sheets("SOURCE").Range ( _
          $oExcel.Cells(1,1), $oExcel.Cells($nb_ligne+1,$nb_colonne+1) _
      ).Copy ( _
          $oExcel.Sheets("FILTREE_INDIRECT").Cells(1,1) )    
      $oExcel.ActiveSheet.ShowAllData ; Reaffiche toutes les données dans l'onglet STPRED aprés copie des données filtrées

      ;===============================================================================================
      ; Signature de la méthode NamedRange.AdvancedFilter
      ;
      ;   AdvancedFilter (
      ;       XlFilterAction Action,
      ;       [OptionalAttribute] Object CriteriaRange,
      ;       [OptionalAttribute] Object CopyToRange,
      ;       [OptionalAttribute] Object Unique
      ;   )
      ;
      ; Paramètres
      ;----------------------------------------------------------------------------------------------------------
      ; XlFilterAction = Il peut s'agir de l'une des valeurs XlFilterAction suivantes :
      ;                       - xlFilterCopy = 2    : Copier les données filtrées dans une plage de destination
      ;                       - xlFilterInPlace = 1 : Laisse les données filtrées au même endroit
      ;  CriteriaRange = Zone de critères. Si cet argument est omis, aucun critère n'est spécifié.
      ;    CopyToRange = Plage de destination pour les lignes copiées si Action a la valeur xlFilterCopy. Sinon
      ;                  cet argument est ignoré.
      ;         Unique = True pour filtrer seulement les enregistrements uniques
      ;                  False pour filtrer tous les enregistrements qui répondent aux critères.
      ;----------------------------------------------------------------------------------------------------------


      ;===============================================================================================
      ; Remarques
      ;
      ; Nous avons dans ce script, utiliser la méthode AdvancedFilter avec le paramètre $xlFilterInPlace pour
      ; ensuite copier les données dans un nouvel onglet. On aurait très bien pu utiliser directement cette
      ; méthode avec les paramètre xlFilterCopy = 2 et CopyToRange.
      ;===============================================================================================

      ; Application du filtre elaboré de l'onglet "FILTRE_ELABORE" sur l'onglet "ONGLET_SOURCE" avec copie direct dans "ONGLET_DIRECT"
      $oExcel.ActiveWorkBook.WorkSheets.Add.Activate                  ; Création d'un nouvel onglet
      $oExcel.ActiveSheet.Name = "FILTREE_DIRECT"             ; Renomme le nouvel onglet créer en "ONGLET_FILTREE"
      $oExcel.ActiveWorkbook.Sheets("SOURCE").Select()
      Local $nb_colonne = $oExcel.ActiveSheet.UsedRange.Columns.Count ; Compte le nombre de colonnes actives de "ONGLET_SOURCE"
      Local $nb_ligne   = $oExcel.ActiveSheet.UsedRange.Rows.Count    ; Compte le nombre de lignes actives de "ONGLET_SOURCE"
      Local $xlFilterCopy = 2 ; Constante VBA = Copier les données filtrées dans une plage de destination
      $oExcel.Sheets("SOURCE").Range( _
          $oExcel.Cells(1,1), $oExcel.Cells($nb_ligne+1,$nb_colonne+1) _
      ).AdvancedFilter( _
          $xlFilterCopy, _
          $oExcel.Sheets("FILTRE_ELABORE").Range("A1:C3"), _
          $oExcel.Sheets("FILTREE_DIRECT").Range("A1"), _
          False _
      )

    8 - Convertir un fichier csv en un fichier Excel
    Spoiler pour :
      Code
      ; Création d'un nouveau fichier Excel avec une seul feuille (onglet) nommé "SOURCE"
      Local $oExcel = ObjCreate("Excel.Application")
      With $oExcel
          .SheetsInNewWorkbook = 1
          .Visible = 1
      EndWith

      ; Chemin relatif du fichier csv de test
      Local $chemin_fichier_csv_source = @WorkingDir&"\fichier_source_test_csv.txt"

      ; Déclaration du type de colonne pour le paramètre FieldInfo de la méthode OpenText sur Workbooks
      local $datatype_colonne1[2]=[0,2] ; Colonne 1 "prenom" en format Texte
      local $datatype_colonne2[2]=[1,2] ; Colonne 2 "age" en format Texte
      local $datatype_colonne3[2]=[2,2] ; Colonne 3 "reference" en format Texte
      local $datatype_colonne4[2]=[3,4] ; Colonne 4 "date" en format jj/mm/aaaa
      local $datatype_array[4] = [$datatype_colonne1,$datatype_colonne2,$datatype_colonne3,$datatype_colonne4]

      If (FileExists($chemin_fichier_csv_source)) Then
          Local $reponse = MsgBox(4, "Fichier", "Le fichier "&$chemin_fichier_csv_source&" existe." _
          &@CRLF&@CRLF&"Voulez-vous convertir ce fichier csv, en un fichier Excel?")
          If($reponse = 6) Then
              ; Conversion du fichier csv en un fichier excel
              $oExcel.Workbooks.OpenText($chemin_fichier_csv_source,2,1,1,1,False,False,False,False,False,True,"|",$datatype_array)
          EndIf
      Else
          MsgBox(0, "Fichier", "Le fichier "&$chemin_fichier_csv_source&" n'existe pas.")
      EndIf

      ; Paramètres de Workbooks.OpenText
      ;===========================================================================================================
      ; Workbooks.OpenText($Filename,$Origin,$StartRow,$DataType,$TextQualifier,$Consecutive,$Tab,$Semicolon,
      ;                    $Comma,$Space,$Other,$OtherChar,$FieldInfo)
      ;
      ;  1) Filename      (Required)  String Specifies the file name of the text file to be opened and parsed.
      ;  2) Origin        (Optional)  Specifies the origin of the text file. (xlWindows=2, xlMSDOS or Default)
      ;  3) StartRow      (Optional)  The row number at which to start parsing text.
      ;  4) DataType      (Optional)  Précise si les colonnes sont delimitées ou de taille fixe (1=delimited, 2=fixedwidth)
      ;  5) TextQualifier (Optional)  Specifies the text qualifier. (1=double quote, -4142=delimited, 2=single quote)
      ;  6) Consecutive   (Optional)  True to have consecutive delimiters considered one delimiter.
      ;  7) Tab           (Optional)  True to have the tab character be the delimiter (DataType must be xlDelimited=1)
      ;  8) Semicolon     (Optional)  True to have the semicolon character be the delimiter (DataType must be xlDelimited=1)
      ;  9) Comma         (Optional)  True to have the comma character be the delimiter (DataType must be xlDelimited=1)
      ; 10) Space         (Optional)  True to have the space character be the delimiter (DataType must be xlDelimited=1)
      ; 11) Other         (Optional)  True to have an anoter character delimiter specified by the OtherChar argument (DataType must be xlDelimited=1)
      ; 12) OtherChar     (Optional)  Required if Other is True, specifies the delimiter character when Other is True.
      ;                               If more than one character is specified, only the first character of the string is used,
      ;                               the remaining characters are ignored.
      ; 13) FieldInfo     (Optional)  XlColumnDataType. An array containing parse information for individual columns of data.
      ;                               Il s'agit d'une suite d'Array(IndexColonne, TypeColonne) où
      ;                                   - IndexColonne correspond à l'index de la première colonne
      ;                                   - TypeColonne au type de la colonne, dont voici la liste possible :
      ;                                       o xlGeneralFormat Général : 1
      ;                                       o xlTextFormat Texte : 2
      ;                                       o xlMDYFormat Format de date Mois-Jour-Année : 3
      ;                                       o xlDMYFormat Format de date Jour-Mois-Année : 4
      ;                                       o xlYMDFormat Format de date Année-Mois-Jour : 5
      ;                                       o xlMYDFormat Format de date Mois-Année-Jour : 6
      ;                                       o xlDYMFormat Format de date Jour-Année-Mois : 7
      ;                                       o xlYDMFormat Format de date Année-Jour-Mois : 8
      ;                                       o xlEMDFormat Date EMD : 9
      ;                                       o xlSkipColumn Non distribuée : 10
      ;===========================================================================================================




    Informations utiles

    Quelques remarque de fin sur la manipulation automatiquement Excel dans AutoIT.


    1 - Comment traduire une action humaine sous Excel dans AutoIt
      Je vous donne ici une petite astuce vous permettant de traduire une action humain sous Excel dans AutoIT.

      • Tout d'abord vous allez enregistrer une macro dans Excel correspondant à l'action que vous souhaiter automatiser dans AutoIT.
      • Une fois la macro enregistrer vous allez lire le code VBA généré dans le Visual Basic Editor d'Excel. Vous avez ainsi une idée des attributs et des méthodes utilisées.
      • Ensuite vous pouvez vous rendre sur le site http://social.msdn.microsoft.com/Search/fr-FR/ afin de rechercher tel méthode ou attribut. Ainsi vous aurez le descriptif de la signature et vous pourrez l'appliquer à vos besoins.


    2 - Microsoft Office VBA Constants pour AutoIT
      Il arrive souvent que les méthodes ou attributs utilisées dans Excel utilise certaines constantes particulières qu'il faut bien traduire dans AutoIT.

      Par exemple le paramètre missing en VBA est traduit en Default dans AutoIT. Ou encore le paramètre $xlFilterInPlace utilisé dans la méthode AdvancedFilter qui précise à cette méthode si elle doit laissé les données filtrées en place est traduit dans Excel par la valeur $xlFilterInPlace = 1.

      Voici un lien ou vous trouverez toutes les constantes Microsoft Office pour Excel, Outlook, Access, FrontPage, Document Imaging, et MS Graphing. Microsoft Office VBA Constants



Je n'ai pas eu le courage de relire pour corriger les feâuthes... ni vérifier qu'aucune erreur ne se soit glissé dans les exemples de code... ^^ merci pour votre indulgence ^^
... si tel était le cas... corriger les erreurs tu devras ...

 Profil  
 
AutoIt Français
Hors ligne
Modérateur
Modérateur
Inscription: Ven 15 Fév 2008 12:25
Messages: 325

Localisation: Paris
Sujet du message: Re: [Tuto] Utiliser Excel avec Autoit
MessagePosté: Jeu 09 Juil 2009 19:46 

Encore un fois bravo pour ce tutoriel qui servira à plus d'un :D
Bonne introduction aux COM, recherche des liens pour en savoir plus, et pas tant de fautes que ça :lol: :lol:



Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :

 Profil  
 
AutoIt Français
Hors ligne
Niveau 3
Niveau 3
Avatar de l’utilisateur
Inscription: Ven 03 Juil 2009 10:39
Messages: 41
Sujet du message: Re: [Tuto] Utiliser Excel avec Autoit
MessagePosté: Jeu 16 Juil 2009 09:19 

Arigatô Gozaimasu :wink:

 Profil  
 
AutoIt Français
Hors ligne
Niveau 3
Niveau 3
Avatar de l’utilisateur
Inscription: Ven 03 Juil 2009 10:39
Messages: 41
Sujet du message: Re: [Tuto] Utiliser Excel avec Autoit
MessagePosté: Mar 28 Juil 2009 08:40 

    9 - Recherche d'une valeur dans un range avec la méthode Find (plage)

      Une fois défini un Range, c'est à dire une plage de cellules d'une feuille Excel, on peut y appliquer la méthode Find qui permet d'effectuer une recherche dans celle-ci d'une valeur que l'on souhaite. En cas de succès la méthode renvoi la première cellule rencontré ayant pour propriété .value la valeur cherché. Si il existe plusieurs cellules contenant la valeur cherché, la première cellule trouvé dépend de la direction de recherche de la méthode. En cas d'échec de la méthode Find c'est à dire que la recherche de la valeur souhaité n'a rien donné dans la plage la méthode renvoi Nothing en VBA... qui n'existe pas avec AutoIt mais que l'on peut compenser avec le test If( IsObj($search_cell) = 1 ) qui permet de vérifier qu'il s'agit bien d'un objet.

    Spoiler pour :
      Code
      #cs ----------------------------------------------------------------------------
       AutoIt Version : 3.3
       Author         : 20100
       
       Hacks_Excel : Utiliser la méthode Find sur un Range
      #ce
      ----------------------------------------------------------------------------


      ; Création d'un nouveau fichier Excel avec une seul feuille (onglet) nommé "ONGLET_SOURCE"
      ; Et dont la cellule "A1" contient la string "I believe i can fly !!!"
      Local $oExcel = ObjCreate("Excel.Application")
      With $oExcel
          .SheetsInNewWorkbook = 1
          .Visible = 1
          .WorkBooks.Add
          .ActiveWorkbook.Worksheets(1).Name = "ONGLET_SOURCE"
          .ActiveWorkbook.Worksheets(1).Cells(1,1) = "I believe i can fly !!!"
      EndWith

      For $i=3 to 22 Step 1
          $oExcel.ActiveWorkbook.Worksheets(1).Cells($i,1) = "Test "&$i-2 
      Next


      ; Recherche
      Local $search_keyword = "Test 0"
      Local $search_cell = $oExcel.Columns("A:B").Find($search_keyword)
      If( IsObj($search_cell) = 1 ) Then ; Si la recherche à abouti
          MsgBox(0, "Find success", "La recherche de "&Chr(34)&$search_keyword&Chr(34)&" dans la plage donne la cellule ("&$search_cell.Row &";"&$search_cell.Column&")"  )
      Else
          MsgBox(0, "Find failed", "La recherche de "&Chr(34)&$search_keyword&Chr(34)&" dans la plage n'a rien donné" )
      EndIf

      Local $search_keyword = "Test 1"
      Local $search_cell = $oExcel.Columns("A:B").Find($search_keyword)
      If( IsObj($search_cell) = 1 ) Then ; Si la recherche à abouti
          MsgBox(0, "Find success", "La recherche de "&Chr(34)&$search_keyword&Chr(34)&" dans la plage donne la cellule ("&$search_cell.Row &";"&$search_cell.Column&")"  )
      Else
          MsgBox(0, "Find failed", "La recherche de "&Chr(34)&$search_keyword&Chr(34)&" dans la plage n'a rien donné" )
      EndIf

      ;===============================================================================================
      ; Signature de la méthode NamedRange.Find
      ;
      ;   myRange.Find (
      ;           Object What,
      ;           [OptionalAttribute] Object After,
      ;           [OptionalAttribute] Object LookIn,
      ;           [OptionalAttribute] Object LookAt,
      ;           [OptionalAttribute] Object SearchOrder,
      ;           [OptionalAttribute] XlSearchDirection SearchDirection,
      ;           [OptionalAttribute] Object MatchCase,
      ;           [OptionalAttribute] Object MatchByte,
      ;           [OptionalAttribute] Object SearchFormat
      ;   )
      ;
      ; What : Données à rechercher. Il peut s'agir d'une chaîne ou de tout type de données Microsoft Office Excel.
      ; After : Cellule dans laquelle vous voulez commencer la recherche. Cela correspond à la position de la cellule active lorsqu'une recherche est effectuée à partir de l'interface utilisateur. Notez que After doit être une cellule unique de la plage. Souvenez-vous que la recherche commence après cette cellule ; la cellule spécifiée ne fait pas l'objet d'une recherche tant que la méthode n'est pas revenue à cette cellule. Si vous ne spécifiez pas d'argument, la recherche commence après la cellule située dans l'angle supérieur gauche de la plage.
      ; LookIn : Type d'informations.
      ; LookAt : Il peut s'agir de l'une des valeurs XlLookAt suivantes : xlWhole ou xlPart.
      ; SearchOrder : Il peut s'agir de l'une des valeurs XlSearchOrder suivantes : xlByRows ou xlByColumns.
      ; SearchDirection : Sens de la recherche. Il peut s'agir de l'une des valeurs XlSearchDirection suivantes : xlNext ou xlPrevious
      ; MatchCase : true si la recherche doit respecter la casse. La valeur par défaut est false.
      ; MatchByte : Utilisé uniquement si vous avez sélectionné ou installé la prise en charge linguistique de jeux de caractères codés sur deux octets. true pour que les caractères codés sur deux octets correspondent uniquement à des caractères codés sur deux octets ; false pour que les caractères codés sur deux octets correspondent aux caractères codés sur un octet équivalents.
      ; SearchFormat  : Format de recherche.
      ;
      ; Valeur de retour : Objet Microsoft.Office.Interop.Excel.Range qui représente la première cellule contenant les informations.
      ; Cette méthode retourne référence Null (Nothing en Visual Basic) si aucune correspondance n'est trouvée.
      ; Cette méthode n'affecte pas la sélection ou la cellule active.
      ; Les paramètres de LookIn, LookAt, SearchOrder et MatchByte sont enregistrés chaque fois que vous utilisez cette méthode. Si vous ne spécifiez pas de valeurs pour ces arguments la prochaine fois que vous appelez la méthode, les valeurs enregistrées sont utilisées. La définition de ces arguments modifie les paramètres de la boîte de dialogue Recherche, et la modification des paramètres dans la boîte de dialogue Recherche modifie les valeurs enregistrées qui sont utilisées si vous omettez les arguments. Pour éviter tout problème, définissez explicitement ces arguments chaque fois que vous utilisez cette méthode.
      ; Vous pouvez utiliser les méthodes FindNext et FindPrevious pour répéter la recherche.
      ; Lorsque la recherche atteint la fin de la plage de recherche spécifiée, elle revient au début de la plage. Pour arrêter une recherche lorsqu'elle revient au début, enregistrez l'adresse de la première cellule trouvée, puis comparez chaque adresse de cellule consécutive trouvée à cette adresse enregistrée.
      ;===============================================================================================
       


 Profil  
 
AutoIt Français
Hors ligne
Modérateur
Modérateur
Avatar de l’utilisateur
Inscription: Jeu 22 Juil 2010 10:29
Messages: 164
Age: 24

Localisation: 81 et 31
Sujet du message: Re: [Tuto] Utiliser Excel avec Autoit
MessagePosté: Mer 28 Juil 2010 14:04 

Merci pour ce super tuto qui vient de me sauver ma vie ^__^
Bon je vois qu'il a déjà un an, est ce que quelqu'un saurait si il va être amené à évoluer ou non ?
parce que éventuellement j'aurais des choses à ajouter que j'ai découvert de mon côté,

comme par exemple manipulation des charts excel en utilisant l'automation com ou bien encore la liste des différents enums utilisé par excel pour décrire le positionnement des légendes par exemple (très pratique pour pouvoir modifier le style d'un graphique depuis autoit) ....

donc voila si ça intéresse quelqu'un je peux me charger de le faire. Sachant que une question se pose : doit on continuer à la suite de ce topic ou en créer un tout neuf ?



.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<

 Profil  
 
AutoIt Français
Hors ligne
Modérateur
Modérateur
Avatar de l’utilisateur
Inscription: Ven 02 Mai 2008 13:54
Messages: 1507
Age: 19

Localisation: Bruxelles
Sujet du message: Re: [Tuto] Utiliser Excel avec Autoit
MessagePosté: Mer 28 Juil 2010 17:59 

Salut,

Bien sur tu peux toujours continuer ce tuto, le but d'un membre d'une communauté est de partager et apporter du contenu à celle-ci !

Par contre je suis plus d'avis que tu crées un topic à toi mais tu peux toujours reprendre le même titre et ajouter un [suite] par exemple.



Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci

 Profil  
 
AutoIt Français
Hors ligne
Modérateur
Modérateur
Avatar de l’utilisateur
Inscription: Jeu 22 Juil 2010 10:29
Messages: 164
Age: 24

Localisation: 81 et 31
Sujet du message: Re: [Tuto] Utiliser Excel avec Autoit
MessagePosté: Mer 28 Juil 2010 19:03 

Ok ça marche,
quand j'ai un moment je m'y mets ^__^



.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<

 Profil  
 
AutoIt Français
Hors ligne
Niveau 3
Niveau 3
Avatar de l’utilisateur
Inscription: Ven 03 Juil 2009 10:39
Messages: 41
Sujet du message: Re: [Tuto] Utiliser Excel avec Autoit
MessagePosté: Lun 06 Sep 2010 14:47 

Merci SrBelial,

Comme le précise jbnh, le but du forum est de partager des connaissances, n'hésite pas à venir enrichir les connaissances de ce tutoriel afin d'en faire profiter la communauté.

Vu les possibilités offertes par l'objet Excel, on pourrait écrire des pages et des pages sur ce qu'il est possible de faire, mais je pense qu'en suivant ce tuto on est amène de comprendre les mécanismes et donc de se réapproprier l'ensemble des fonctionnalités proposés par Excel.

Mais je te l'accorde c'est toujours agréable de tomber sur un exemple clair.

Citation
comme par exemple manipulation des charts excel en utilisant l'automation com ou bien encore la liste des différents enums utilisé par excel pour décrire le positionnement des légendes par exemple (très pratique pour pouvoir modifier le style d'un graphique depuis autoit) ....


See ya ;)

 Profil  
 
AutoIt Français
Hors ligne
Modérateur
Modérateur
Avatar de l’utilisateur
Inscription: Jeu 22 Juil 2010 10:29
Messages: 164
Age: 24

Localisation: 81 et 31

Haut
Sujet du message: Re: [Tuto] Utiliser Excel avec Autoit
MessagePosté: Mar 07 Sep 2010 08:08 

coucou !
^__^
une tite partie de ce que je voulais faire est déjà écrite .... j'ai créé un tuto exprès ...
il me reste encore quelques points que je veux partager .... quand j'aurais le temps ! lol



.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<

 Profil  
 
Afficher les messages postés depuis:  Trier par  

Poster un nouveau sujet Répondre au sujet  [ 9 messages ] 

Heures au format UTC + 1 heure


Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  

AutoIt Français
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group, Sniper_Blue phpBB-3.0 Style © 2007 Sniper_E
Traduction par: phpBB-fr.com