Sub copie()
Dim c As Worksheet 'déclare la variable c
Dim x As Byte 'déclare la variable x
Dim dest As Range 'déclare la variable dest
Set c = Sheets("COMPILATION") 'définit la variable c
c.Range("D1:IV65536").ClearContents 'efface les anciennes valeurs
For i = 1 To Sheets.Count 'boucle sur tous les onglets du classeur
'condition 1 : si les deux premières lettres de l'onglet sont "SC" (à adapter...)
If Left(Sheets(i).Name, 2) = "SC" Then
'définit la variable dest
If c.Range("D1").Value = "" Then 'consition 2 : si D1 est vide
Set dest = c.Range("D1") 'dest=d1
Else 'sinon
Set dest = c.Cells(1, 256).End(xlToLeft).Offset(0, 1) 'dest est la prochaine colonne
End If 'fin de la condition 2
With Sheets(i) 'prend en compte l'onglet de la boucle
dest.Value = .Range("C3") 'récupère la valeur de C3
For x = 1 To 56 'boucle sur les 56 premières lignes
dest.Offset(x, 0).Value = .Cells(x, 14).Value 'recupère les valeurs
Next x 'prochaine ligne de la boucle
End With 'fin de la prise en compte de l'onglet de la boucle
End If 'fin de la condition 1
Next i 'prochain onglet du classeur
End Sub