UDF > Excel >


_Excel_RangeWrite

Écrit des valeurs ou des formules dans une cellule ou une plage de cellules dans le classeur et la feuille de calcul spécifiés

#include <Excel.au3>
_Excel_RangeWrite ( $oWorkbook, $vWorksheet, $vValue [, $vRange = "A1" [, $bValue = True [, $bForceFunc = False]]] )

Paramètres

$oWorkbook Objet classeur Excel
$vWorksheet Nom, index ou objet feuille de calcul où écrire. Si la valeur est le mot-clé Default, la feuille active sera utilisée
$vValue Peut être une chaîne, un tableau 1D ou 2D indexé à partir de zéro contenant les données à écrire dans la feuille
$vRange [optionnel] Une plage au format $xlA1 ou un objet plage (valeur par défaut ="A1")
$bValue [optionnel] Si True, $vValeur sera écrite dans la propriété Value. Si False, $vValeur sera écrite dans la propriété Formula (par défaut = True)
$bForceFunc [optionnel] True force à utiliser la fonction _ArrayTranspose à la place 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 l'objet plage des données écrites.
É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 feuille de calcul. @extended contient le code d'erreur COM
3 - $vRange n'est pas valide. @extended contient le code d'erreur COM
4 - Une erreur s'est produite lors de l'écriture des données. @extended contient le code d'erreur COM

Remarques

Si $vRange est une cellule simple et $vValeur est un tableau, alors $vRange ser,a agrandipour contenir le tableau complet.
Cette plage "élargi" est ensuite retournée par la fonction.
Si $vRange n'est pas une cellule simple et $vValeur est un tableau et $vValeur > $vRange alors le tableau est tronqué.
Si $vRange n'est pas une cellule simple et $vValeur est un tableau et $vValeur < $vRange alors les cellules qui dépassent obtiennent #NV.

La méthode Transpose d'Excel a une limite non documentée à propos du nombre de cellules ou de lignes qu'elle peut transposer (dépend de la version d'Excel).
La méthode Transpose d'Excel ne supporte pas les cellules avec plus de 255 caractères. Définissezt $bForceFunc à True pour contourner cette limitation.

En relation

_Excel_RangeRead

Exemples

Exemple 1

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

; Crée un objet Excel et crée un nouveau classeur
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple", "Erreur lors de la création du nouveau classeur." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; *****************************************************************************
; Ecrit une chaîne avec un saut de ligne dans la feuille active du classeur actif
; *****************************************************************************
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "Test" & @CRLF & "String")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple 1", "Erreur lors de l'écriture dans la feuille." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple 1", "Chaîne écrite avec succès.")


Exemple 2

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

; Crée un objet Excel et crée un nouveau classeur
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple", "Erreur lors de la création du nouveau classeur." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; *****************************************************************************
; Écrit un tableau 1D dans la feuille active du classeur actif
; *****************************************************************************
Local $aArray1D[3] = ["AA", "BB", "CC"]
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aArray1D, "A3")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple 2", "Erreur lors de l'écriture dans la feuille." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple 2", "Tableau 1D écrit avec succès.")


Exemple 3

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

; Crée un objet Excel et crée un nouveau classeur
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple", "Erreur lors de la création du nouveau classeur." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; *****************************************************************************
; Ecrit une partie d'un tableau 2D dans la feuille active du classeur actif
; *****************************************************************************
Local $aArray2D[3][5] = [[11, 12, 13, 14, 15],[21, 22, 23, 24, 25],[31, 32, 33, 34, 35]]
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aArray2D, "B1")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple 3", "Erreur lors de l'écriture dans la feuille." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple 3", "Tableau 2D écrit avec succès.")


Exemple 4

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

; Crée un objet Excel et crée un nouveau classeur
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple", "Erreur lors de la création du classeur." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; *****************************************************************************
; Remplit une plage dans la feuille active du classeur actif avec une formule
; *****************************************************************************
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "=B1+3", "B5:F6", False)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple 4", "Erreur lors de l'écriture dans la feuille." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeWrite-Exemple 4", "Plage remplit avec succès avec une formule.")