Copier coller dans VBA

Copier Coller dans VBA est similaire à ce que nous faisons dans la feuille de calcul Excel, comme nous pouvons copier une valeur et la coller dans une autre cellule, nous pouvons également utiliser coller spécial pour coller uniquement les valeurs, de même dans VBA, nous utilisons la méthode de copie avec la propriété de plage pour copiez une valeur d'une cellule à l'autre et pour coller la valeur, nous utilisons la fonction de feuille de calcul coller spéciale ou la méthode coller.

Comment copier de la pâte dans VBA?

Vous trouverez ci-dessous quelques exemples de copier-coller dans Excel à l'aide de VBA.

La chose de base que nous faisons dans Excel est de copier, de couper et de coller les données d'une cellule à une autre. Il ne nécessite pas non plus d'introduction particulière. Cependant, tout en apprenant le codage VBA, il est important de comprendre le même concept dans le langage de codage. Copier Coller dans VBA est la tâche de routine que nous effectuons au jour le jour dans Excel. Afin de copier d'abord, nous devons décider quelle cellule copier.

Exemple # 1 - Copier et coller des valeurs à l'aide d'un objet Range

Vous pouvez télécharger ce modèle Excel VBA Copy Paste ici - Modèle VBA Copy Paste Excel

Supposons que vous ayez le mot «Excel VBA» dans la cellule A1.

Disons par exemple que si vous souhaitez copier la cellule A1, nous pouvons utiliser l'objet VBA RANGE.

Code:

Sub Copy_Example () Range ("A1"). End Sub

Au moment où vous référencez la cellule, nous pouvons voir toutes les propriétés et méthodes avec. Sélectionnez donc la méthode « Copier ».

Code:

 Sub Copy_Example () Range ("A1"). Copy End Sub 

Après avoir sélectionné la méthode, appuyez sur la touche espace pour voir l'argument de la méthode Copy.

Il dit Destination.

Ce n'est rien mais où voulez-vous copier-coller des valeurs dans VBA sans sélectionner la méthode PASTE.

Si nous collons dans la même feuille, nous pouvons sélectionner la cellule en utilisant l'objet Range. Disons que si nous voulons coller la valeur dans la cellule B3, nous pouvons mettre la destination en tant que «Range (« B3 »)» .

Code:

 Sub Copy_Example () Range ("A1"). Copy Destination: = Range ("B3") End Sub 

Cela copiera les données de la cellule A1 et les collera dans la cellule B3.

Nous pouvons également utiliser la méthode ci-dessous pour coller les données.

Code:

 Sub Copy_Example () Range ("A1"). Copy Range ("B3"). Sélectionnez ActiveSheet.Paste End Sub 

Tout d'abord, nous allons copier et sélectionner les données de la cellule A1 et les coller dans la cellule B3.

Exemple # 2 - Copier dans une autre feuille de calcul dans le même classeur

Maintenant, si nous voulons copier-coller la valeur des différentes feuilles de calcul à l'aide de la macro VBA, dans l'argument Destination, nous devons référencer le nom de la feuille à l'aide de l'objet WORKSHEETS, puis mentionner la plage de cellules dans cette FEUILLE DE TRAVAIL. Le code ci-dessous fera l'affaire.

Code:

 Sub Copy_Example () Range ("A1"). Copy Destination: = Worksheets ("Sheet2"). Range ("B3") End Sub 

Si nous voulons copier les données d'une feuille particulière et que nous voulons coller dans une autre feuille particulière, nous devons mentionner à la fois les noms des feuilles.

Tout d'abord, nous devons mentionner la feuille de copie.

Feuilles de calcul ("Sheet1"). Plage ("A1"). Copier

Ensuite, dans l'argument Destination, nous devons mentionner le nom de la feuille de calcul ciblée et la plage de la cellule.

Destination: = Feuilles de calcul ("Sheet2"). Plage ("B3")

Donc, le code devrait aimer ça.

Code:

 Sub Copy_Example () Worksheets ("Sheet1"). Range ("A1"). Copy Destination: = Worksheets ("Sheet2"). Range ("B3") End Sub 

Exemple # 3 - Copie d'un classeur vers un autre classeur

Nous avons vu comment copier d'une feuille de calcul vers une autre feuille de calcul dans le même classeur. Mais nous pouvons également le faire d'un classeur à un autre classeur.

Jetez un œil au code ci-dessous.

Code:

 Sous Copy_Example () Workbooks ("Book 1.xlsx"). Worksheets ("Sheet1"). Range ("A1"). Copy Workbooks ("Book 2.xlsx"). Activez ActiveWorkbook.Worksheets ("Sheet 2"). Sélectionnez ActiveSheet.Paste End Sub 

Tout d'abord, il copiera les données de la feuille de calcul «Sheet1» dans le classeur «Book1.xlsx» de la cellule A1.

" Classeurs (" Livre 1.xlsx "). Feuilles de calcul (" Feuille1 "). Plage (" A1 "). Copier"

Ensuite, il activera le classeur «Book 2.xlsx».

Classeurs ("Livre 2.xlsx"). Activer

Dans le classeur actif, il sélectionnera la feuille de calcul «Feuille 2»

ActiveWorkbook.Worksheets ("Feuille 2"). Sélectionnez

Maintenant dans la feuille active, il va coller

ActiveSheet.Paste

Autre moyen d'utiliser Copy Paste dans VBA

Nous avons une autre façon de disposer des données d'une cellule à une autre. Supposons que vous ayez le mot «Excel VBA» dans la cellule A1 et que vous en ayez besoin dans la cellule B3.

Une méthode que nous avons vue utilise la méthode de copier-coller VBA, je vais maintenant vous montrer l'une des méthodes alternatives. Regardez le morceau de code ci-dessous pour comprendre.

Code:

 Sub Copy_Example1 () Range ("A1"). Value = Range ("B3"). Value End Sub 

Ce qui précède dit que la valeur de la cellule A1 doit être égale à la valeur de la cellule B3.

Plage ("A1"). Valeur = Plage ("B3"). Valeur

Même s'il ne s'agit pas d'une méthode de copier-coller, cela ajoute encore plus de valeur à nos connaissances en codage.

Principales façons de copier et coller VBA en tant que valeurs

Nous allons maintenant voir différentes façons de copier et coller des valeurs VBA. Supposons que vous soyez dans la cellule A1 comme indiqué dans l'image ci-dessous.

  • If we want to copy and paste we need to reference the cell here, rather we can just use a property of Selection. Copy method.

Code:

 Sub Copy_Example1() Selection.Copy Destination:=Range("B3") End Sub 

OR

 Sub Copy_Example1() ActiveCell.Copy Destination:=Range("B3") End Sub 
  • If you want to copy the entire used range of the worksheet you can use the below code.

Code:

 Sub Copy_Example2() Worksheets("Sheet1").UsedRange.Copy Destination:=Worksheets("Sheet2").Range("A1") End Sub 

This will copy the entire used range in the worksheet “Sheet1” and will paste the same in the worksheet “Sheet2”