citizenbaban
XLDnaute Junior
Bonjour à tous,
Petit problème avec une macro d'affichage/masquage de colonnes. J'ai cherché sur le forum et un peu sur le net mais j'ai surtout trouvé des solutions qui ne s'appliquent que pour une cellule et pas une plage de cellule.
Voici l'idée :
En colonne A, de A3 à A150 des cellules à menu déroulant "Test1; Test2; Tets3".
En fonction de la valeur retenue en A : afficher les colonnes "B" si Test 1, "E:G" si Test2 et "H:J" si Test 3, et si cellule A vide : "B:J" masqué.
Ca, j'arrive à le faire avec ce code :
Le truc c'est que si je supprime un Test sur une ligne, ça ne prend pas en compte les valeurs des cellules au dessus/en dessous, idem si un Test3 est remplacé par un Test2 par exemple.
Est-ce que vous auriez une idée pour "interconnecter" les valeurs en A ? (sachant que le A150 est pris pour être large, le nombre de saisies en A sera variable).
Merci à tous,
Citizen
Petit problème avec une macro d'affichage/masquage de colonnes. J'ai cherché sur le forum et un peu sur le net mais j'ai surtout trouvé des solutions qui ne s'appliquent que pour une cellule et pas une plage de cellule.
Voici l'idée :
En colonne A, de A3 à A150 des cellules à menu déroulant "Test1; Test2; Tets3".
En fonction de la valeur retenue en A : afficher les colonnes "B" si Test 1, "E:G" si Test2 et "H:J" si Test 3, et si cellule A vide : "B:J" masqué.
Ca, j'arrive à le faire avec ce code :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim h, iSct As Range
Set iSct = Intersect(Target, Range("A2:A150"))
If iSct Is Nothing Then Exit Sub
Application.EnableEvents = True
For Each h In iSct.Cells
If IsEmpty(h) Then
Columns("B:J").Hidden = True
ElseIf h.Value = "Test1" Then
Columns("B:D").Hidden = False
ElseIf h.Value = "Test2" Then
Columns("E:G").Hidden = False
ElseIf h.Value = "Test3" Then
Columns("H:J").Hidden = False
End If
Next
End Sub
Le truc c'est que si je supprime un Test sur une ligne, ça ne prend pas en compte les valeurs des cellules au dessus/en dessous, idem si un Test3 est remplacé par un Test2 par exemple.
Est-ce que vous auriez une idée pour "interconnecter" les valeurs en A ? (sachant que le A150 est pris pour être large, le nombre de saisies en A sera variable).
Merci à tous,
Citizen