Henri souhaite copier les données contenues dans une cellule source vers une cellule de destination sans quitter la position actuelle sur la feuille de calcul.

En d’autres termes, il aimerait copier de la cellule A1 vers la cellule AE459 sans quitter sa position actuelle à V104. Il se demande si une telle modification est même possible.

Bien sûr, l’approche évidente consiste simplement à mettre la formule = A1 dans la cellule AE459. Ensuite, Excel prend soin de s’assurer que les deux cellules sont égales. Vous pouvez également ouvrir une deuxième fenêtre sur la feuille de calcul et vous occuper de la copie dans cette fenêtre; la cellule sélectionnée dans la fenêtre d’origine (cellule V104) resterait inchangée.

Si vous voulez réellement faire une opération de « copie », cependant, sans ouvrir une seconde fenêtre, vous devrez alors recourir à une macro.

La copie d’une cellule à une autre dans une macro est assez simple. Par exemple, l’exemple suivant copiera le contenu de la cellule A1 vers AE459 sans affecter la cellule que vous avez actuellement sélectionnée:

Sub CopyCell1()

'   Copy the cell value to destination cell     Range("AE459") = Range("A1")

End Sub

Si vous souhaitez copier une formule qui se trouve dans la cellule A1 vers la destination, vous devez modifier la façon dont la copie est effectuée. Plus précisément, vous devez utiliser la méthode Copy en utilisant la plage de destination comme paramètre.

Sub CopyCell2()

'   Copy the relative formula to destination     Range("A1").Copy Range("AE459")

End Sub

Bien entendu, un inconvénient de ces macros est qu’elles sont statiques – elles ne copient que de la cellule A1 à la cellule AE459. Si vos besoins de copie peuvent varier, vous pouvez envisager d’effectuer la tâche dans la fenêtre Exécution de l’éditeur VB. Ouvrez simplement l’éditeur et tapez la seule ligne de la macro appropriée dans la fenêtre. La copie est alors effectuée et vous pouvez fermer l’éditeur, le tout sans affecter la cellule que vous avez sélectionnée.

Une autre façon de fournir un peu de flexibilité dans la source et la destination de la macro consiste à demander à l’utilisateur (la macro) d’indiquer la source et la destination. La macro suivante adopte cette approche.

Sub CopyCell3()

Dim SrceCell As String     Dim DestCell As String

SrceCell = InputBox("Copy From Cell ...")

DestCell = InputBox("Copy To Cell ...")

Range(DestCell) = Range(SrceCell)

End Sub

_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 (9949) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.