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) :
Je vous remercie par avance pour votre aide.
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
Partager