Private Sub Worksheet_Activate()
Dim Nom1,Nom2,x
x = 2
For Each Nom1 In Range(Cells(5, 3), Cells(5, Cells(5, Columns.Count).End(xlToLeft).Column))
If Nom1.Value <> "" Then
With Worksheets(CStr(Nom1))
For Each Nom2 In .Range(.Cells(2, 4), .Cells(2, .Cells(2, .Columns.Count).End(xlToLeft).Column))
If Nom2.Value <> "" Then
x = x + 1
.Range(.Cells(4, Nom2.Column), .Cells(4, Nom2.Column + 7)).Copy
Cells(8, x).PasteSpecial Paste:=xlPasteAll, Transpose:=True
End If
Next
End With
End If
Next
End Sub