Copier la plage vers une autre feuille, Excel VBA
Voici un exemple de code VBA détaillé pour copier une plage de données d’une feuille vers une autre feuille dans Excel. Ce code comprend des explications à chaque étape pour que vous puissiez bien comprendre le fonctionnement.
Objectif : Copier une plage de données d’une feuille à une autre.
Étapes du code :
- Définir les objets de travail : Vous devez définir les feuilles et la plage de données à copier.
- Copier la plage : Utilisez la méthode Copy pour copier les données.
- Coller la plage : Après la copie, utilisez la méthode Paste pour coller les données à l’endroit souhaité.
Code VBA détaillé :
Sub CopierPlageVersAutreFeuille()
' Déclaration des variables
Dim SourceSheet As Worksheet ' Feuille source
Dim DestinationSheet As Worksheet ' Feuille de destination
Dim PlageSource As Range ' Plage de cellules à copier
Dim PlageDestination As Range ' Plage de cellules où coller
' Référence aux feuilles source et destination
Set SourceSheet = ThisWorkbook.Sheets("Feuille1") ' Remplacez "Feuille1" par le nom de votre feuille source
Set DestinationSheet = ThisWorkbook.Sheets("Feuille2") ' Remplacez "Feuille2" par le nom de votre feuille de destination
' Définir la plage à copier (par exemple A1:C10 de la feuille source)
Set PlageSource = SourceSheet.Range("A1:C10")
' Définir la première cellule de la plage de destination (par exemple A1 de la feuille de destination)
Set PlageDestination = DestinationSheet.Range("A1")
' Copier la plage de la feuille source
PlageSource.Copy
' Coller la plage dans la feuille de destination à l'endroit défini
PlageDestination.PasteSpecial Paste:=xlPasteAll ' Vous pouvez aussi utiliser xlPasteValues, xlPasteFormats, etc.
' Désactiver le mode copie (enlever le "marquage" de la sélection)
Application.CutCopyMode = False
' Message de confirmation
MsgBox "Les données ont été copiées avec succès !", vbInformation
End Sub
Explication du code :
1. Déclaration des variables :
- SourceSheet : représente la feuille de travail contenant les données à copier.
- DestinationSheet : représente la feuille où vous voulez coller les données.
- PlageSource : représente la plage de cellules à copier.
- PlageDestination : représente la cellule de destination où les données seront collées.
2. Références aux feuilles :
- Set SourceSheet = ThisWorkbook.Sheets(« Feuille1 ») : ici, vous spécifiez le nom de la feuille source (à modifier selon vos besoins).
- Set DestinationSheet = ThisWorkbook.Sheets(« Feuille2 ») : de même, vous spécifiez la feuille de destination.
3. Définition des plages :
- Set PlageSource = SourceSheet.Range(« A1:C10 ») : cela définit la plage à copier. Dans cet exemple, cela copie de A1 à C10.
- Set PlageDestination = DestinationSheet.Range(« A1 ») : définit la cellule de destination où la plage copiée sera collée.
4. Copier la plage :
- PlageSource.Copy : cette commande copie la plage spécifiée.
5. Coller la plage :
- PlageDestination.PasteSpecial Paste:=xlPasteAll : cela colle les données copiées dans la plage de destination. L’option xlPasteAll colle tout (valeurs, formats, formules, etc.). Vous pouvez modifier cette option selon vos besoins (par exemple, xlPasteValues pour ne coller que les valeurs).
6. Désactiver le mode « Copier » :
- Application.CutCopyMode = False : cela désactive le mode de copie après l’opération, supprimant la « sélection en pointillé » autour de la plage copiée.
7. Message de confirmation :
- MsgBox « Les données ont été copiées avec succès ! », vbInformation : un message s’affiche pour informer l’utilisateur que l’opération a été effectuée avec succès.
Personnalisation du code :
- Plage Source : Vous pouvez modifier la plage de cellules à copier (par exemple A1:C10), ou la rendre dynamique selon votre besoin.
- Plage Destination : Vous pouvez spécifier où vous voulez coller les données (par exemple, la cellule A1 de la feuille de destination).