UDF > Excel >


_Excel_BookOpen

Ouvre un classeur existant

#include <Excel.au3>
_Excel_BookOpen ( $oExcel, $sFilePath [, $bReadOnly = False [, $bVisible = True [, $sPassword = Default [, $sWritePassword = Default [, $bUpdateLinks = Default]]]]] )

Paramètres

$oExcel Objet application Excel où vous voulez ouvrir le classeur
$sFilePath Chemin et nom du fichier à ouvrir
$bReadOnly [optionnel] True ouvre le classeur en lecture seule (par défaut, False)
$bVisible [optionnel] True spécifie que la fenêtre du classeur sera visible (par défaut, True)
$sPassword [optionnel] Le mot de passe qui a été utilisé pour protéger en lecture le classeur, le cas échéant ( par défaut: pas de protection )
$sWritePassword [optionnel] Le mot de passe qui a été utilisé pour protéger en écriture le classeur, le cas échéant (par défaut, pas de protection)
$bUpdateLinks [optionnel] Indique la façon dont les références externes (liens) du fichier sont mise à jour (par défaut, Default)
Les valeurs valides sont:
    Par défaut: Excel demande à l'utilisateur de décider comment mettre à jour les liens
.     0: Excel ne met pas à jour les liens
.     3: Excel met à jour tous les liens.

Valeur de retour

Succès: Retourne un objet Workbook. @extended est mis à 1 si $bReadOnly = False mais l'accès en lecture-écriture ne devrait pas être accordé. Voir la section Remarque pour plus de détails.
Échec: Retourne 0 et définit @error <> 0.
@error: 1 - $oExcel n'est pas un objet ou n'est pas un objet application
2 - Le fichier $sFilePath n'existe pas
3 - Impossible d'ouvrir $sFilePath. @extended contient le code d'erreur COM retourné par la méthode Open

Remarque

Si vous définissez $bReadOnly à False mais que le document ne peut pas être ouvert en lecture-écriture, @error = 1.
Le classeur a été ouvert en lecture seule, car il a déjà été ouvert par un autre utilisateur/tâche ou le fichier est en lecture seule par le système de fichiers.
Si vous modifiez le classeur, vous devez utiliser _Excel_BookSaveAs() pour le sauvegarder à un autre endroit ou avec un autre nom.

Lors du réglage de $bVisible = False lors de l'ouverture d'un classeur, assurez-vous de définir de nouveau le classeur à visible avant de sauvegarder le classeur.
Utilisez $oExcel.Windows($oWorkbook.Name).Visible = True pour rendre de nouveau le classeur visible.
Sinon le classeur ne sera pas visible lorsque vous l'ouvrirez manuellement à l'aide d'Excel.
La plupart du temps ce paramètre n'est pas nécessaire. Utiliser $bVisible = False dans _Excel_Open est le moyen privilégié.

Si $bUpdateLinks est défini à Default, l'utilisateur est interrogé seulement si $bDisplayAlerts est fixé à True dans la fonction _Excel_Open.
Si $bDisplayAlerts est défini à False, Excel choisit la réponse par défaut.

En relation

_Excel_BookAttach, _Excel_BookClose, _Excel_BookNew, _Excel_BookOpenText

Exemple

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

; Crée un objet Excel
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox(16, "UDF Excel: _Excel_BookOpen-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

; *****************************************************************************
; Ouvre un classeur existant et retourne son identifiant d'objet.
; *****************************************************************************
Local $sWorkbook = @ScriptDir & "\Extras\_Excel1.xls"
Local $oWorkbook = _Excel_BookOpen($oExcel, $sWorkbook, Default, Default, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_BookOpen-Exemple", "Erreur lors de l'ouverture de '" & $sWorkbook & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_BookOpen-Exemple", "Le classeur '" & $sWorkbook & "' a été ouvert avec succès." & @CRLF & @CRLF & "Date de Création: " & $oWorkbook.BuiltinDocumentProperties("Creation Date").Value)