Private Sub Worksheet_Activate()
Dim tablo, ub&, resu(), col%, i&, n&
tablo = Sheets("Feuil1").[A1].CurrentRegion.Resize(, 7) 'matrice, plus rapide
ub = UBound(tablo)
ReDim resu(1 To 3 * ub, 1 To 3)
For col = 2 To 6 Step 2
For i = 2 To ub
If tablo(i, col) & tablo(i, col + 1) <> "" Then
n = n + 1
resu(n, 1) = tablo(i, 1)
resu(n, 2) = tablo(i, col)
resu(n, 3) = tablo(i, col + 1)
End If
Next i, col
'---resy=titution---
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [A2] '1ère cellule de restitution, à adapter
If n Then .Resize(n, 3) = resu
.Offset(n).Resize(Rows.Count - n - .Row + 1, 3).ClearContents 'RAZ en dessous
End With
Columns.AutoFit 'ajuste les largeurs
End Sub