Sub Macro1()
Dim OD As Object 'déclare la variable OD (Onglet de Destination)
Dim O As Object 'déclare la variable O (Onglets)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Set OD = Sheets("Master Data") 'définit l'onglet OD
For Each O In Sheets 'boucle sur tous les onglets O du classeur
Select Case O.Name 'agit en fonction du nom de l'onglet O
'cas "Sommaire", "Formulaire Demande", "Formulaire Process" et "Master Data", rien ne se passe
Case "Sommaire", "Formulaire Demande", "Formulaire Process", "Master Data"
Case Else 'tous les autres cas
'définit la cellule de destination DEST (A1 si A1 est vide sinon, la première cellule vide de la ligne 1)
Set DEST = IIf(OD.Range("A1") = "", OD.Range("A1"), OD.Cells(1, Application.Columns.Count).End(xlToLeft).Offset(0, 1))
'condition : si le nombre de valeurs dans la plage est supérieur à 1
If Application.WorksheetFunction.CountA(O.Range("D1:D170")) > 1 Then
O.Range("D1:D170").Copy 'copie la plage D1:D170 de l'onglet O
'colle les valeurs dans DEST
DEST.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If 'fin de la condition
End Select 'fin de la condition
Next O 'prochain onglet de la boucle
End Sub