Re
Ok.
1. Code Worksheet_change, remplacez le par celui ci-dessous
Private Sub Worksheet_Change(ByVal Target As Range)
Dim mblig As Integer
If Not Intersect(Target, Range("C1")) Is Nothing Then
Select Case Target
Case Is = vbNullString
Range("A:AZ").EntireColumn.Hidden = False
Case Is = "Acomptes"
Range("A:J, S:S, AL:AL").EntireColumn.Hidden = False
Range("K:R, T:AJ, AM:AZ").EntireColumn.Hidden = True
Case Is = "Coordonnées"
Range("A:D,W:AG").EntireColumn.Hidden = False
Range("E:V,AH:AZ").EntireColumn.Hidden = True
Nlig = Range("C" & Rows.Count).End(xlUp).Row
Range("C2:C" & Nlig).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Case Is = "Contrats"
Range("A:M,P:V,AH:AL").EntireColumn.Hidden = False
Range("N:O,W:AG,AM:AZ").EntireColumn.Hidden = True
Case Is = "IFCD"
Range("A:J,S:S,AH:AJ").EntireColumn.Hidden = False
Range("K:R,T:AG,AK:AZ").EntireColumn.Hidden = True
End Select
If Target.Value <> "Coordonnées" Then Call Filtre
End If
End Sub
2. Filtre : ajoutez ce code dans la feuille en dessous des deux autres
Private Sub Filtre()
With Range("A2:AR2")
If AutoFilterMode = True Then
On Error Resume Next
.ShowAllData
On Error GoTo 0
Else: .AutoFilter
End If
Cells.EntireRow.Hidden = False
End With
End Sub
Le code fonctionnera aussi quand vous videz la cellule C1 (cela affichera tout le tableau
Pour la question de AR ou AZ, on aurait aussi pu dimensionner automatiquement mais là c'est revoir le code
Si ok, pensez à
Cordialement