With shDest
'Calculer la plage de destination:
'Dernière Cellule occupée de la colonne A: Range("A" & Rows.Count).End(xlUp)
'Decaler cette cellule d'une ligne pour avoir la prochaine cellule libre: .Offset(1)
'Retailler au nombre de lignes et colonnes necessaires: .Resize(NbrLignes, 3)
Set PlageDest = shDest.Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(NbrLignes, 3)
'y placer les valeurs de la plage source concernée:
'Plage Source = A5 retailler aux nombres de lignes voulues et de 3 colonnes
PlageDest.Value = shSource.Range("A5").Resize(NbrLignes, 3).Value
'Après c'est simplement du décalage et retaillage de plage à partir de la plageDest définie plus haut.
PlageDest.Offset(, 5).Resize(NbrLignes, 1) = shSource.Cells(5, 4).Resize(NbrLignes, 1).Value
PlageDest.Offset(, 6).Resize(NbrLignes, 3) = shSource.Cells(5, 11).Resize(NbrLignes, 3).Value
PlageDest.Offset(, 12).Resize(NbrLignes, 3).Value = shSource.Cells(5, 5).Resize(NbrLignes, 3).Value
For i = 0 To (NbrLignes - 1)
PlageDest.Offset(rowOffset:=i, columnOffset:=3).Resize(NbrLignes, 1) = shSourceTAP.Cells(1, 1).Resize(NbrLignes, 1).Value
PlageDest.Offset(rowOffset:=i, columnOffset:=4).Resize(NbrLignes, 1) = shSourceTAP.Cells(1, 2).Resize(NbrLignes, 1).Value
PlageDest.Offset(rowOffset:=i, columnOffset:=9).Resize(NbrLignes, 1) = shSourceTAP.Cells(1, 3).Resize(NbrLignes, 3).Value
Next i
End With