Bonjour,
Voici un essai qui va remplir la feuille active de la façon demandée:
La macro:
Sub remplissage()
Dim colACopier(1 To 2) As Integer, colAColler(1 To 2) As Integer, ligFin As Integer, colFin As Integer, _
nbColBonus As Integer
Dim tableau As Variant
colACopier(1) = Range("Q1").Column
colACopier(2) = Range("R1").Column
colAColler(1) = Range("H1").Column
colAColler(2) = Range("I1").Column
nbColBonus = 9
ligFin = Range("A" & Rows.Count).End(xlUp).Row + 1
colFin = Cells(1, Columns.Count).End(xlToLeft).Column + nbColBonus 'le nombre de colonnes qui ne sont pas dans _
la plage nommée
tableau = Range("A2", Cells(ligFin, colFin)).Value
For i = 2 To UBound(tableau, 1)
For j = 1 To UBound(colACopier, 1)
If Not tableau(i, colACopier(j)) = "" Then
tableau(i + 1, colAColler(j)) = tableau(i, colACopier(j))
End If
Next j
Next i
ReDim Preserve tableau(1 To UBound(tableau, 1), 1 To UBound(tableau, 2) - nbColBonus)
Range("A2").Resize(UBound(tableau, 1), UBound(tableau, 2)).Value = tableau
End Sub