Bonjour,
Je n'ajoute pas une réponse, mais une question.
J'ai un code qui copie une plage de cellulles de la feuille 1 vers la feuille 2. Cette plage est une série de cellules de la même colonne. J'ai essayé 3 formules (2 conseillées par le message d'erreurs de VBA-E, la 3ème d'après le code que Bbil a proposé le 18.12.06 à 9 h. 41):
a) sur la feuille 2, je sélectionne, dans la colonne de destination, exactement le même nombre de cellules qu'il y en a dans ma sélection à copier à partir de la 1ère feuille. Erreur: "La zone de destination n'a pas la même forme que la zone de copie"
b) sur la feuille 2, je sélectionne la 1ère cellule de la colonne de destination. Erreur: comme avec l'autre méthode.
c) J'adapte (maladroitement ?)la ligne de code de Bbil à mon contexte. Celle-ci donne Erreur définie par l'application ou par l'objet.

Je précise que mes références sont des index. D'ailleurs voici le
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 'Range("B1").Activate
 'ActiveCell.EntireColumn.Select
 '                 Application.CutCopyMode = False
 '                 Selection.Copy
'ActiveWorkbook.Sheets("entrepot").Activate
'Range("A1").Select
'                pas = 1
'                Do Until Selection = ""
'                    Selection.Offset(0, pas).Select
'
''                Loop
 '                   'Cells(1, pas + 2).Select
 '                 ActiveCell.EntireColumn.Select
 '                 ActiveSheet.Paste
 
 
 
 'Variante de la section transitoire
  pas = 1
 ''Range(Cells(1, 2), Cells(20, 2)).Select
 ''       Application.CutCopyMode = False
 ''      Selection.Copy
 
  ''       ActiveWorkbook.Sheets("entrepot").Activate
  ''       Range("A:A").Value = Empty
  ''       Range("B1").Select
 
   ''             Do Until Selection = ""
   ''                 Selection.Offset(0, pas).Select
   ''                 pas = pas + 1
    ''            Loop
    ''               Cells(1, pas + 1).Select
         'Range(Cells(1, 1 + pas), Cells(20, 1 + pas)).Select
 
         'Variante:
    ''      ActiveSheet.Cells(1, 1 + pas).Activate
    ''     r = 1 + pas
    ''     ActiveSheet.Paste
 
 
         '2ème variante d'après Développeurs.com
  ActiveWorkbook.Sheets("entrepot").Activate
         Range("A:A").Value = Empty
         Range("B1").Select
 
                Do Until Selection = ""
                    Selection.Offset(0, pas).Select
                    pas = pas + 1
                Loop
ThisWorkbook.Sheets("entrepot").Range(Cells(1, pas), Cells(20, pas)).Copy ThisWorkbook.Sheets _
    ("feuille_syntagmes").Range(Cells(1, 2), Cells(20, 2))
         'Range(Cells(1, 1 + pas), Cells(20, 1 + pas)).Select
 
         'fin de la Variante N° 1:
        ''  ActiveSheet.Cells(1, 1 + pas).Activate
       ''  r = 1 + pas
       ''  ActiveSheet.Paste


La moulinette Do Until vise à décaler la copie vers la prochaine colonne si la première sélectionnée n'est pas vide. Les diverses variantes cherchent à éviter l'erreur que je viens de mentionner mais donnent aussi des erreurs.
Merci de vos lumières
Cordialement
Pierre