Szilvia peut créer un jeu de sélection de cellules, de sorte qu’elle dispose d’une plage de cellules non contiguës sélectionnée. Si elle essaie de copier ces cellules en utilisant Ctrl + C, Excel l’informe que «cette action ne fonctionnera pas sur plusieurs sélections». Szilvia se demande s’il existe un moyen de copier une plage non contiguë, puis de coller cette plage afin que les cellules soient dans la même position relative que dans la sélection d’origine.

Apparemment, cette limitation de vous autoriser uniquement à copier et coller des plages contiguës est la façon dont Excel est conçu pour fonctionner. La seule façon de copier et coller une plage non contiguë est d’utiliser une macro – une macro qui parcourt chaque cellule d’une sélection et la colle par rapport à une adresse cible. Voici un exemple:

Sub CopyPasteCells()

Dim sTemp As String     Dim sTarget As String     Dim c As Range     Dim pasteRng As Range

sTemp = InputBox("Target cell?")

sTarget = Trim(sTemp)

If sTarget > "" Then         Set pasteRng = ActiveSheet.Range(sTarget)

For Each c In Selection             c.Copy             pasteRng.Range(c.Address).PasteSpecial xlPasteValues         Next     End If     Application.CutCopyMode = False End Sub

Pour utiliser la macro, créez simplement votre jeu de sélection de cellules. Ensuite, exécutez la macro et spécifiez la cellule cible pour le collage. Les cellules sont collées par rapport à cette cellule cible dans la feuille de calcul actuelle.

Vous devez noter que la macro effectue très peu de vérification des erreurs. Par exemple, vous pouvez entrer une adresse de cellule cible totalement fausse et la macro essaiera de répondre à votre demande. (Si l’adresse cible est trop fausse, vous obtiendrez un message d’erreur.)

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (5228) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.