Cet article montrera comment utiliser VBA pour copier une plage de cellules dans une autre feuille ou un autre classeur.
Pour plus d'informations, lisez notre didacticiel de copier-coller VBA.
Copier sur une feuille existante
Pour copier une plage de cellules d'une feuille à une autre feuille qui existe déjà, nous pouvons utiliser le code suivant :
123456 | Sous CopierEtCollerActiveSheet.Range("A1:D10").SélectionnezSélection.CopieFeuilles("Feuille2").SélectionnezActiveFeuille.CollerFin du sous-marin |
Cela copiera les informations stockées dans la plage de feuilles active A1:D10 et les collera dans une feuille Sheet2 existante. Comme nous n'avons pas spécifié la plage à sélectionner dans la feuille 2, elle la collera automatiquement dans Range ("A1"). Il collera également toute mise en forme dans la feuille 2 qui se trouvait dans la plage de la feuille 1.
Si nous souhaitons le coller à un emplacement différent dans la feuille 2, nous pouvons sélectionner la cellule ou la plage de départ dans laquelle coller. Le code ci-dessous collera les informations à partir de la cellule E2.
1234567 | Sous CopierEtCollerDansPlageActiveSheet.Range("A1:D10").SélectionnezSélection.CopieFeuilles("Feuille2").SélectionnezPlage("E1").SélectionnezActiveFeuille.CollerFin du sous-marin |
Pour simplement coller les valeurs dans la feuille 2 et ne pas inclure la mise en forme, nous pouvons utiliser le code suivant. Encore une fois, nous n'avons pas à spécifier la plage à laquelle paginer si nous souhaitons coller dans la cellule A1.
123456 | Sous CopyAndPasteValuesActiveSheet.Range("A1:D10").SélectionnezSélection.CopieFeuilles("Feuille2").SélectionnezSelection.PasteSpecial Paste:=xlPasteValuesFin du sous-marin |
Copier dans une nouvelle feuille
Pour copier puis coller dans une nouvelle feuille, nous pouvons utiliser le code suivant :
123456 | Sous CopierEtCollerNouvelleFeuilleActiveSheet.Range("A1:D10").SélectionnezSélection.CopieSheets.Add After :=ActiveSheetActiveFeuille.CollerFin du sous-marin |
Pour simplement copier des valeurs, nous pouvons à nouveau utiliser xlPasteValues.
Copier dans un classeur existant
Pour copier et coller entièrement dans un classeur différent, nous pouvons soit avoir les deux classeurs déjà ouverts, soit utiliser le code pour ouvrir un autre classeur, puis coller dans ce classeur.
Ce code ci-dessous est copié dans un classeur existant déjà ouvert.
1234567 | Sous CopierEtCollerLivre ExistantPlage ("A1:D10").SélectionnezSélection.CopieWindows("CombinedBranches.xlsx").ActiverSheets.Add After :=ActiveSheetActiveFeuille.CollerFin du sous-marin |
Programmation VBA | Le générateur de code fonctionne pour vous !
Ce code ci-dessous sera copié et collé dans une nouvelle feuille dans un 2ème classeur qui sera ouvert par le code.
1234567 | Sous CopierEtCollerOpenWorkbookPlage ("A1:D9").SélectionnezSélection.CopieWorkbooks.Open Filename:= "C:\ExcelFiles\CombinedBranches.xlsx"Sheets.Add After :=ActiveSheetActiveFeuille.CollerFeuille de fin |
ASTUCE : remplacez le nom du fichier dans l'argument Workbooks.Open par votre propre nom de fichier !
Copier dans un nouveau classeur
Nous pouvons également copier et coller dans un nouveau classeur.
123456 | Sous CopierEtCollerNouveauCahierPlage ("A1:D9").SélectionnezSélection.CopieClasseurs.AjouterActiveFeuille.CollerFin du sous-marin |