Leonard écrit une macro pour transférer des données d’une feuille de calcul à une autre. Les deux feuilles de calcul se trouvent dans le même classeur. Les données qu’il souhaite transférer se trouvent sur la première feuille de calcul et utilisent une plage nommée: « SourceData ».

Il se compose d’une seule ligne de données. Leonard souhaite, dans la macro, transférer ces données de la première feuille de calcul vers la première ligne vide de la deuxième feuille de calcul, mais il ne sait pas trop comment s’y prendre.

Il existe en fait plusieurs façons de le faire, mais toutes les méthodes ont deux prérequis: l’identification de la plage source et l’identification de la plage cible. La plage source est facile car elle est nommée. Vous pouvez spécifier la plage source dans votre macro de cette manière:

Set rngSource = Worksheets("Sheet1").Range("SourceData")

Trouver la première ligne vide de la feuille de calcul cible est un peu plus délicat. Voici un moyen relativement simple de le faire:

iRow = Worksheets("Sheet2").Cells(Rows.Count,1).End(xlUp).Row + 1 Set rngTarget = Worksheets("Sheet2").Range("A" & iRow)

Une fois terminé, la variable rngTarget pointe vers la plage de la cellule A quelle que soit la première ligne vide. (Dans ce cas, une ligne vide est définie comme toute ligne qui n’a rien dans la colonne A.)

Il ne vous reste plus qu’à mettre ces plages source et cible à utiliser avec la méthode Copy:

Sub CopySource()

Dim rngSource As Range     Dim rngTarget As Range     Dim iRow As Integer

Set rngSource = Worksheets("Sheet1").Range("SourceData")

iRow = Worksheets("Sheet2").Cells(Rows.Count,1).End(xlUp).Row + 1     Set rngTarget = Worksheets("Sheet2").Range("A" & iRow)

rngSource.Copy Destination:=rngTarget End Sub

Notez qu’avec les plages définies, tout ce que vous avez à faire est d’utiliser la méthode Copy sur la plage source et de spécifier la plage cible comme destination de l’opération. Une fois terminé, les données d’origine sont toujours dans la plage source, mais ont été copiées dans la cible.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (6131) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.

Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Transferring_Data_between_Worksheets_Using_a_Macro [Transfert de données entre feuilles de calcul à l’aide d’une macro].