UDF > Excel >


_Excel_RangeRead

Lit la valeur, la formule ou le texte affiché à partir d'une cellule ou d'une plage de cellules du classeur et de la feuille de calcul spécifiés

#include <Excel.au3>
_Excel_RangeRead ( $oWorkbook [, $vWorksheet = Default [, $vRange = Default [, $iReturn = 1 [, $bForceFunc = False]]]] )

Paramètres

$oWorkbook Objet classeur Excel
$vWorksheet [optionnel] Nom, index ou objet de feuille de calcul qui doit être lu. Si la valeur est le mot-clé Default, la feuille active sera utilisée (par défaut = mot-clé Default)
$vRange [optionnel] Un objet de plage ou une plage au format $xlA1. Si la valeur est Default, toutes les cellules utilisées seront traitées (par défaut = mot-clé Default )
$iReturn [optionnel] Ce qu'il faut retourner de la cellule spécifiée:
    1 - Valeur (par défaut)
    2 - Formule
    3 - Le texte affiché
    4 - Value2. La seule différence entre Value and Value2 est que la propriété Value2 n'utilise pas les types de données Date et Currency
$bForceFunc [optionnel] True force l'utilisation de la fonction _ArrayTranspose au lieu de La méthode Transpose d'Excel (par défaut = False).
    Voir la section Remarques pour plus de détails.

Valeur de retour

Succès: Retourne les données de la/des cellule(s) spécifiée(s). Une chaîne par cellule, un tableau indexé à partir de 0 pour une plage de cellules.
Échec: Retourne 0 et définit @error <> 0.
@error: 1 - $oWorkbook n'est pas un objet ou n'est pas un objet classeur
2 - Le nom ou l'index $vWorksheet n'est pas valide ou $vWorksheet n'est pas un objet de feuille de calcul. @extended contient le code d'erreur COM
3 - $vRange n'est pas valide. @extended contient le code d'erreur COM
4 - Le paramètre $iReturn n'est pas valide. Doit être > 1 et < 4
5 - Une erreur s'est produite lors de la lecture des données en utilisant la méthode de transpose. @extended contient le code d'erreur COM
6 - La taille maximale d'un tableau de AutoIt est dépassée (2 ^ 24 = 16777216 éléments)
7 - Une erreur s'est produite lors de la lecture des données en utilisant la fonction _ArrayTranspose. @extended contient le code d'erreur COM

Remarque

La méthode Transpose d'Excel a une limite non documentée sur le nombre de cellules qu'elle peut transposer (dépend de la version Excel).
Si vous transposez > 65535 cellules alors $bForceFunc est forcé à True.
La méthode de transposition Excel ne supporte pas les cellules avec plus de 255 caractères. Définissez $bForceFunc à True pour contourner cette limitation.
$iReturn = 3 permet seulement d'obtenir le texte affiché d'une cellule simple. Ceci est une limitation d'Excel.

En relation

_Excel_RangeWrite

Exemples

Exemple 1

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

; Crée un objet Excel et ouvre un classeur exemple
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeRead-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeRead-Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Lit les données à partir d'une seule cellule sur la feuille active du classeur spécifié
Local $sResult = _Excel_RangeRead($oWorkbook, Default, "A1")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeRead-Exemple 1", "Erreur lors de la lecture du classeur." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeRead-Exemple 1", "Données lues avec succès." & @CRLF & "Value of cell A1: " & $sResult)


Exemple 2

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

; Crée un objet Excel et ouvre un classeur exemple
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeRead-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeRead-Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Lit les formules d'une plage de cellules sur la feuille 2 du classeur spécifié
Local $aResult = _Excel_RangeRead($oWorkbook, 2, "A1:C1", 2)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeRead-Exemple 2", "Erreur lors de la lecture du classeur." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeRead-Exemple 2", "Données lues avec succès." & @CRLF & "Svp, cliquez sur 'OK' pour afficher les formules des cellules A1:C1  de la feuille 2.")
_ArrayDisplay($aResult, "UDF Excel: _Excel_RangeRead-Exemple 2 - Cellules A1:C1 de la feuille 2")


Exemple 3

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

; Crée un objet Excel et ouvre un classeur exemple
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeRead-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeRead-Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Lit les formules d'une plage de cellules (les cellules utilisées dans la colonne A)
Local $aResult = _Excel_RangeRead($oWorkbook, Default, $oWorkbook.ActiveSheet.Usedrange.Columns("A:A"), 2)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeRead-Exemple 3", "Erreur lors de la lecture du classeur." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeRead-Exemple 3", "Données lues avec succès." & @CRLF & "Svp, cliquez sur 'OK' pour afficher tooutes les formules de la colonne A.")
_ArrayDisplay($aResult, "UDF Excel: _Excel_RangeRead-Exemple 3 - Formules de la colonne A")