Bonjour Anthony,
ton fichier en retour : https://www.cjoint.com/c/MJlsMKuppD0
la feuille active est "Mise en page" ; fais Ctrl e ➯ travail effectué.  :)
à toi de vérifier tous les résultats.  ;)
tu aurais pu faire Ctrl e à partir de la feuille "Data" ; les résultats
auraient été identiques.
dans les 2 cas : c'est inutile d'effacer les anciens résultats car
c'est fait automatiquement par la macro.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
code VBA de Module1 (32 lignes) :
Option Explicit
Sub CpyData()
  Const na As String * 5 = "<N/A>"
  Dim sh As Worksheet, s$, m&, r&, d&, i&, j&, k&
  Set sh = Worksheets("Mise en page"): m = Rows.Count: r = 2
  d = sh.Cells(m, 1).End(3).Row: Application.ScreenUpdating = 0
  If d > 1 Then sh.Range("A2:V" & d) = Empty
  Worksheets("Data").Select
  d = Cells(m, 7).End(3).Row: If d = 1 And IsEmpty([G1]) Then Exit Sub
  Do: i = i + 1: Loop Until Cells(i, 7) <> ""
  Do
    With sh.Cells(r, 1)
      .Value = Cells(i, 2)                                          'NumeroClient
      .Offset(, 1) = Cells(i, 7)                                    'Intitule
      .Offset(, 2) = Cells(i + 1, 2)                                'Raccourci
      j = i + 2: .Offset(, 3) = Cells(j, 2)                         'Adresse1
      For k = 1 To 3
        s = Cells(j + k, 2): .Offset(, 3 + k) = IIf(s = "", na, s)  'Adresse2 à Complément
      Next k
      s = Cells(i + 4, 5): .Offset(, 7) = IIf(s = "", na, s)        'Ville
      j = i + 5: .Offset(, 15).Resize(, 3).NumberFormat = "@"
      For k = 1 To 14
        s = Cells(j + k, 3): .Offset(, 7 + k) = IIf(s = "", na, s)  'Country à Sales Person
      Next k
      If i = d Then Exit Do
    End With
    i = Cells(i, 7).End(4).Row: r = r + 1
  Loop
  sh.Select
End Sub
rhodo