UDF > Excel >


_Excel_RangeCopyPaste

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]]]]]] )

Param�tres

$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)

Valeur de retour

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

Remarque

$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

Exemples

Exemple 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

; *****************************************************************************
; 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'.")


Exemple 2

#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'.")


Exemple 3

#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.")


Exemple 4

#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'.")