Roseline
XLDnaute Occasionnel
Bonjour,
J'ai un fichier avec des tonnes de colonnes. Quand je fais un choix dans ma cellule C2, ou C3 ou C4, je vois apparaître seulement mes colonnes selon mes sélections faites dans ces cellules.
Lorsque je fais un choix dans ma cellule C4 c'est là que j'ai un problème. Rien ne s'affiche quand je fais une sélection, il masque mes colonnes et ne prend pas en compte le choix dans ma cellule C2 ou C3 si il y a lieu. Si je fais juste un choix dans ma cellule C4, il n'affiche rien non plus.
Voici ma vba, quelqu'un a une idée de ce qui manque ou ce qui est pas correct
Merci et bonne journée
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim v1, v2, v3, c As Range
v1 = [c2]: v2 = [C3] & "*": v3 = [C4]
If v1 & v2 = "*" Then Columns.Hidden = False: Exit Sub 'affiche tout
Application.ScreenUpdating = False
With Range("c2", UsedRange)
With .Columns(4).Resize(, .Columns.Count - 3)
If v1 & v2 & v3 = "" Then .Columns.Hidden = False
.Hidden = True 'masque tout
For Each c In .Rows(2).Cells
If v1 <> "" And v2 & v3 <> "*" Then If c.MergeArea(1) = v1 And CStr(c(2)) Like v2 & v3 Then c.EntireColumn.Hidden = False
If v1 <> "" And v2 & v3 = "*" Then If c = v1 Then c.MergeArea.EntireColumn.Hidden = False
If v1 = "" And v2 & v3 <> "*" Then If CStr(c(2)) Like v2 & v3 Then c.EntireColumn.Hidden = False
Next
End With
End With
End Sub
J'ai un fichier avec des tonnes de colonnes. Quand je fais un choix dans ma cellule C2, ou C3 ou C4, je vois apparaître seulement mes colonnes selon mes sélections faites dans ces cellules.
Lorsque je fais un choix dans ma cellule C4 c'est là que j'ai un problème. Rien ne s'affiche quand je fais une sélection, il masque mes colonnes et ne prend pas en compte le choix dans ma cellule C2 ou C3 si il y a lieu. Si je fais juste un choix dans ma cellule C4, il n'affiche rien non plus.
Voici ma vba, quelqu'un a une idée de ce qui manque ou ce qui est pas correct
Merci et bonne journée
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim v1, v2, v3, c As Range
v1 = [c2]: v2 = [C3] & "*": v3 = [C4]
If v1 & v2 = "*" Then Columns.Hidden = False: Exit Sub 'affiche tout
Application.ScreenUpdating = False
With Range("c2", UsedRange)
With .Columns(4).Resize(, .Columns.Count - 3)
If v1 & v2 & v3 = "" Then .Columns.Hidden = False
.Hidden = True 'masque tout
For Each c In .Rows(2).Cells
If v1 <> "" And v2 & v3 <> "*" Then If c.MergeArea(1) = v1 And CStr(c(2)) Like v2 & v3 Then c.EntireColumn.Hidden = False
If v1 <> "" And v2 & v3 = "*" Then If c = v1 Then c.MergeArea.EntireColumn.Hidden = False
If v1 = "" And v2 & v3 <> "*" Then If CStr(c(2)) Like v2 & v3 Then c.EntireColumn.Hidden = False
Next
End With
End With
End Sub