Bonjour,

Je prie tout d'abord les "puristes" de VBA de m'excuser pour la technique non optimale que j'utilise dans mes codes mais j'avoue ne pas être une incondionnelle des ActiveCell et consoeurs et préfère les bonnes vieilles boucles...
Toujours est-il que je me heurte fréquemment à des problèmes de référencement de cellules comme maintenant.
Je souhaite donc copier-coller une plage de cellules d'un feuillet à un autre, sachant que le référencement de chaque plage est modifié à chaque itération.
J'ai réussi à copier-coller une plage mobile dans une cellule fixe mais ce code utilise une référence absolue et je ne sais pas comment la modifier. J'ai essayé de passer par une variable "Plage de cellule" mais cela ne fonctionne pas. A priori, la méthode n'est pas valable pour l'objet.

Voici le code qui fonctionne (à partir duquel je voudrais pouvoir faire varier la référence B4) :

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
Sub TableauxTR()
 
    Dim Test As String
    Dim Ligne As Integer, i, j
    'Dim Plage As Range
    'Dim c As Range
 
    'For i = 0 To 63
    i = 0
        With Sheets("Recapitulatif")
            .Activate
            .Range(.Cells(4 + 13 * i, 2), .Cells(12 + 13 * i, 6)).Clear
            .Range(.Cells(4, 9), .Cells(12, 13)).Copy
            .Range(.Cells(4 + 13 * i, 2), .Cells(12 + 13 * i, 6)).PasteSpecial (xlPasteFormats)
        End With
 
        Test = Sheets("Recapitulatif").Cells(1 + 13 * i, 2)
            'For j = 0 To 111
            j = 8
            With Sheets("TableauxIndicesCode")
                .Activate
                If Test = .Cells(2 + 12 * j, 1) Then
                    Ligne = .Cells(2 + 12 * j, 1).Row
                    .Range(.Cells(2 + Ligne, 2), .Cells(10 + Ligne, 6)).Copy Sheets("Recapitulatif").Range("B4")
                End If
            End With
 
            'Next j
    'Next i
 
End Sub
Je vous remercie par avance pour votre aide.