Bonjour Alban, bonjour le forum,
Si tu fitres comme ça :
ActiveSheet.Range("$A$1:$AM$5000").AutoFilter Field:=5, Criteria1:="=null"
Toutes les cellules de la colonne 5 (pas 6) valent "null", il me semble...
Ensuite, tu inverses ligne et colonne. Le code corrigé :
Sub inverser()
Dim i As Double
Dim k As Integer
ActiveSheet.Range("$A$1:$AM$5000").AutoFilter Field:=6, Criteria1:="=null"
For k = 2 To 5000
If Rows(k).Hidden = False Then
i = Cells(5, k).Value
Cells(5, k).Value = Range(7, k).Value
Cells(7, k).Value = i
End If
Next
End Sub