Option Explicit
Private Sub btn_Export_CRCMD_Click()
Dim NbrLignes As Long 'Nombre de lignes à copier
'Feuille source et feuille destination
Dim shSource As Worksheet, shDest As Worksheet
'Plage calculée de destination de la copie
Dim PlageDest As Range
'initialisation des références au feuilles
Set shSource = Sheets("CMD")
Set shDest = Sheets("CRCMD")
'Récupération du nombre de ligne
NbrLignes = shSource.Range("B3")
'Travailler sur la feuille destination
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
End With
End Sub