UDF > Excel >


_Excel_Open

Se connecte à une instance existante d'Excel ou en crée un nouvelle

#include <Excel.au3>
_Excel_Open ( [$bVisible = True [, $bDisplayAlerts = False [, $bScreenUpdating = True [, $bInteractive = True [, $bForceNew = False]]]]] )

Paramètres

$bVisible [optionnel] True spécifie que l'application sera visible (par défaut = True)
$bDisplayAlerts [optionnel] False supprime toutes les invites et les messages d'alerte lors de l'ouverture d'un classeur (par défaut = False)
$bScreenUpdating [optionnel] False supprime le rafraichissement de l'écran pour accélérer votre script (par défaut = True)
$bInteractive [optionnel] Si False, Excel bloque toutes les entrées clavier et souris effectuées par l'utilisateur (sauf l'entrée des boîtes de dialogue) (valeur par défaut = True)
$bForceNew [optionnel] True force la création d'une nouvelle instance d'Excel, même si il y a déjà une instance en cours d'exécution (par défaut = False)

Valeur de retour

Succès: Retourne l'objet application Excel.
Définit @extended à:
    0 - Excel était déjà en cours d'exécution
    1 - Excel n'était pas en cours d'exécution ou $bForceNew était défini à True. Une nouvelle instance d'Excel a été créée
Échec: Retourne 0 et définit @error <> 0.
@error: 1 - Erreur renvoyée par ObjCreate. @extended contient le code d'erreur COM.

Remarques

Si $bDisplayAlerts est définie sur False et qu'un message nécessite une réponse, Excel choisit la réponse par défaut.

Pour améliorer les performances définissez $bScreenUpdating à False. L'écran ne sera pas mis à jour jusqu'à ce que vous définissiez $oExcel.ScreenUpdating à True.

Bloquer les entrées de l'utilisateur ($obInteractive = False) empêchera l'utilisateur d'interférer avec le script AutoIt.
Si la valeur est False, n'oubliez pas de la remettre à True ($oExcel.Interactive = True )

En relation

_Excel_Close

Exemples

Exemple 1

#include <Excel.au3>
#include <MsgBoxConstants.au3>

; *****************************************************************************
; Crée un objet Excel ou se connecte à une instance Excel déjà lancée
; *****************************************************************************
Local $oExcel1 = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_Open-Exemple 1", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_Open-Exemple 1", "L'application Excel a été ouverte avec succès." & @CRLF & @CRLF & "Est-ce que _Excel_Close fermera l'application?: " & @extended)


Exemple 2

#include <Excel.au3>
#include <MsgBoxConstants.au3>

; *****************************************************************************
; Force la création d'une nouvelle application et affiche les alertes Excel
; *****************************************************************************
_Excel_Open(Default, Default, Default, Default, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_Open-Exemple 2", "Erreur lors de la création d'un nouvel objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $aProcesses = ProcessList("Excel.exe")
If $aProcesses[0][0] = 1 Then
    MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_Open-Exemple 2", "L'application Excel a été ouverte avec succès." & @CRLF & @CRLF & $aProcesses[0][0] & " Une instance d'Excel est en cours d'exécution.")
Else
    MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_Open-Exemple 2", "L'application Excel a été ouverte avec succès." & @CRLF & @CRLF & $aProcesses[0][0] & " Une instance d'Excel est en cours d'exécution.")
EndIf