Coupe ou colle une ou plusieurs cellules, lignes ou colonnes vers une plage ou à partir de/vers le presse-papier
#include <Excel.au3>
_Excel_RangeCopyPaste ( $oWorksheet, $vSourceRange [, $vTargetRange = Default [, $bCut = False [, $iPaste = Default [, $iOperation = Default [, $bSkipBlanks = False [, $bTranspose = False]]]]]] )
$oWorksheet | Objet de la feuille de calcul source |
$vSourceRange | Plage source à partir de laquelle copier/couper. Peut être un objet plage ou une plage au format $xlA1. Si la valeur le mot-clé Default alors la plage sera copiée à partir du presse-papiers. |
$vTargetRange | [optionnel] Plage cible pour l'opération copier/couper. Peut être un objet plage ou une plage au format $xlA1. Si la valeur est le mot-clé Default alors la plage sera copié dans le presse-papiers (par défaut = mot-clé Default) |
$bCut | [optionnel] Si la valeur est True la plage source n'est pas copiée mais coupée (par défaut = False) Ce paramètre est ignoré lorsque $vSourceRange contient le mot-clé Default. |
$iPaste | [optionnel] La partie de la plage qui sera collée à partir du presse-papiers (formules, formats...). Doit être une valeur de l'énumération XlPasteType (par défaut = le mot-clé Default) |
$iOperation | [optionnel] L'opération à coller (addition, division, multiplication, ... ). Doit être une valeur de l'énumération XlPasteSpecialOperation (par défaut = mot-clé Default ) |
$bSkipBlanks | [optionnel] Si la valeur est True, les cellules vides du presse-papiers ne seront pas collées dans la plage cible (par défaut, False) |
$bTranspose | [optionnel] Mettre à True pour transposer les lignes et les colonnes lorsque la plage est collée (par défaut, False) |
Succès: | Retourne l'objet plage cible si $vTargetRange <> Default, sinon 1. |
Échec: | Retourne 0 et définit @error <> 0. |
@error: | 1 - $oWorksheet n'est pas un objet ou n'est pas un objet feuille de calcul 2 - $vSourceRange n'est pas valide. @extended contient le code d'erreur COM 3 - $vTargetRange n'est pas valide. @extended contient le code d'erreur COM 4 - Une erreur s'est produite lors de l'opération Coller. @extended contient le code d'erreur COM 5 - Une erreur s'est produite lors de l'opération Couper. @extended contient le code d'erreur COM 6 - Une erreur s'est produite lors de l'opération Copier. @extended contient le code d'erreur COM 7 - $vSourceRange et $vTargetRange ne peuvent pas être définis par Default en même temps |
$vSourceRange et $vTargetRange ne peuvent pas être définis à Default en même temps.
Si $vSourceRange = Default alors:
* La plage sera copiée à partir du presse-papiers en utilisant la méthode PasteSpecial
* $bCut sera ignorée
* $iPaste, $iOperation, $bSkipBlanks et $bTranspose seront pris en compte
Si $vSourceRange et $vTargetRange sont spécifiés, les paramètres $iPaste, $iOperation, $bSkipBlanks et $bTranspose sont ignorés
#include <Excel.au3> #include <MsgBoxConstants.au3> ; Crée un objet Excel et ouvre un classeur Local $oExcel = _Excel_Open() If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended) ; Ouvre le classeur 1 Local $oWorkbook1 = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls", True) If @error Then MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; ***************************************************************************** ; Copie une plage de 3 lignes et 2 colonnes sur la feuille de calcul active. ; Colle la plage source en tant qu'objet. ; ***************************************************************************** Local $oRange = $oWorkbook1.ActiveSheet.Range("I2:J4") _Excel_RangeCopyPaste($oWorkbook1.ActiveSheet, $oRange, "G7") If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple 1", "Erreur lors de la copie des cellules." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple 1", "Plage 'I2:J4' copié avec succès en 'G7'.")
#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_RangeCopy-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended) ; Ouvre le classeur 2 Local $oWorkbook2 = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel3.xls", True) If @error Then MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel3.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; Ouvre le classeur 1 Local $oWorkbook1 = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls", True) If @error Then MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; ***************************************************************************** ; Copie une seule cellule à partir d'un autre classeur. Colle la plage source en tant qu'objet. ; ***************************************************************************** Local $oRange = $oWorkbook2.Worksheets(1).Range("A1") _Excel_RangeCopyPaste($oWorkbook1.Worksheets(1), $oRange, "G15") If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple 2", "Error copying cells." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple 2", "Range 'A1'from workbook _Excel3.xls successfully copied to 'G15'.")
#include <Excel.au3> #include <MsgBoxConstants.au3> ; Crée un objet Excel et ouvre un classeur Local $oExcel = _Excel_Open() If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended) ; Ouvre le classeur 1 Local $oWorkbook1 = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls") If @error Then MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; ***************************************************************************** ; Copie 2 lignes (1 et 2) à partir de la feuille 2 vers le presse-papiers ; ***************************************************************************** _Excel_RangeCopyPaste($oWorkbook1.Worksheets(2), "1:2") If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple 3", "Erreur lors de la copie des lignes." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple 3", "Lignes 1+2 copiées avec succès de la feuille 2 vers le presse-papier.") ; ***************************************************************************** ; Colle la plage écrite dans l'exemple 3 à partir du presse-papiers à la feuille de calcul active. ; Seules les valeurs sans mise en forme seront collées. ; ***************************************************************************** _Excel_RangeCopyPaste($oWorkbook1.Activesheet, Default, "1:1", Default, $xlPasteValues) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple 4", "Erreur lors de la copie des lignes." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple 4", "2 lignes collées avec succès du presse-papier à la ligne 1.")
#include <Excel.au3> #include <MsgBoxConstants.au3> ; Crée un objet Excel et ouvre un classeur Local $oExcel = _Excel_Open() If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended) ; Ouvre le classeur 1 Local $oWorkbook1 = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls", True) If @error Then MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; ***************************************************************************** ; Colle le format d'une cellule sur d'autres cellules ; ***************************************************************************** _Excel_RangeCopyPaste($oWorkbook1.Activesheet, "A1") ; Copie la cellule vers le presse-papiers If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple5", "Erreur lors de la copie de la cellule A1." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_RangeCopyPaste($oWorkbook1.Activesheet, Default, "B1:E16", Default, $xlPasteFormats) ; Colle le format de la plage cible If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple5", "Erreur lors du collage des cellules." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeCopy-Exemple 5", "Format de la cellule 'A1' collé avec succès en 'B1:E16'.")