Déplacement d'une plage

Fermé
Myki - 28 nov. 2020 à 17:30
 Myki - 28 nov. 2020 à 19:57
Bonjour,
Me lançant dans les macros (EXCEL 2010), j'en suis aux premiers balbutiements. Je fais donc appel pour résoudre ce petit problème :
Soit une plage A1:D4 remplies de données.
Je voudrai que cette plage se reproduise à la suite l'une de l'autre, autrement dit en me plaçant sur A1, je voudrai que la macro copie la plage A1:D4 pour la coller en E1:H4. Pour l'action suivante, je me place en E1 et la macro doit me copier la plage E1:H4 pour la coller en I1:L4

Configuration: Windows / Firefox 83.0

2 réponses

franc38 Messages postés 197 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 février 2023 38
Modifié le 28 nov. 2020 à 17:58
Bonjour en macro ça donne:
  Dim i As Integer, j As Integer
For i = 1 To 4
For j = 1 To 4
Cells(i, j + 4) = Cells(i, j)
Next
Next

ou
  Range("A1:D4").Copy
Range("E1").Select
ActiveSheet.Paste

ou
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim a
a = Range("A1:E4")
Range("E1:h4") = a
End Sub


A+ François
0
Bonsoir à vous,
Merci de votre réponse, mais cela ne semble pas correspondre à ce que je voulais. Néophyte, je me suis probablement mal exprimé. Je vais donc essayer de l'expliquer autrement :
Voici les lignes codes d'une cellule que je déplace latéralement, quelque soit la cellule que je choisis au départ :

Sub Macro1()
'
' Macro1 Macro

Selection.Copy
ActiveCell.Offset(0, 5).Select
ActiveSheet.Paste
End Sub

Tout simplement, je voudrai faire la même chose, mais pour une plage de cellule, plage que je ne serai pas obligé de nommer.
J'ai commencé la ligne de code suivante, cela marche, mais c'est le déplacement de la sélection que je n'arrive pas à faire :

Sub TTT()
'
' TTT Macro
'
ActiveCell.Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
'C'EST AU NIVEAU SUIVANT QUE CELA "COINCE"
("offset(0,7)").Select
'ActiveSheet.Paste
' Range("AX1").Select
'ActiveSheet.Paste
End Sub
0