Masquer colonne d'une feuille a partir cellule d'une autre feuille
Bonjour,
Comme indiqué en objet je souhaiterais pouvoir masquer des colonnes d'une feuille en fonction d'une cellule d'une autre feuille.
Exemple :
Si Feuil1, A2 = Oui
alors Feuil2 = masquer colonnes J à M
Si Feuil1, A3 = Non
alors Feuil2 = masquer colonnes N à Q
J'ai trouvé ceci (source : Cacher une colonne en fonction d'une cellule extérieure (excel-pratique.com) )qui marche parfaitement sur la même feuille, mais je ne sais pas comment faire pour masque les colonnes d'une autre feuille.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Application.Intersect(Target, Range("a2")) Is Nothing Then
Application.ScreenUpdating = False
Range("b:BC").EntireColumn.Hidden = False 'affiche tout
'*** masque les colonnes indiquées ****
If Target = 8 Then End
If Target = 7 Then Range("AZ:BC").EntireColumn.Hidden = True
If Target = 6 Then Range("AV:BC").EntireColumn.Hidden = True
If Target = 5 Then Range("AR:BC").EntireColumn.Hidden = True
If Target = 4 Then Range("AN:BC").EntireColumn.Hidden = True
If Target = 3 Then Range("AJ:BC").EntireColumn.Hidden = True
If Target = 2 Then Range("AF:BC").EntireColumn.Hidden = True
End If
End SubPourriez-vous m'aider svp ?
Bonjour,
En feuille2,
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Sheets("Feuil1").Range("A2") = "Oui" Then
Sheets("Feuil2").Columns("J:M").Hidden = True
Else
Sheets("Feuil2").Columns("J:M").Hidden = False
End If
If Sheets("Feuil1").Range("A3") = "Non" Then
Sheets("Feuil2").Columns("N:Q").Hidden = True
Else
Sheets("Feuil2").Columns("N:Q").Hidden = False
End If
End SubWaouh quel rapidité Thrrybo, merci !
J'allais répondre qu'en tâtonnant j'ai fini par trouver quelque chose qui fonctionnait :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Application.Intersect(Target, Range("F9")) Is Nothing Then
Application.ScreenUpdating = False
'*** masque les colonnes indiquées ****
If Target = "Non" Then Sheets("Feuil2").Range("J:M").EntireColumn.Hidden = True
If Target = "Oui" Then Sheets("Feuil2").Range("J:M").EntireColumn.Hidden = False
If Target = "Sélectionner votre choix" Then Sheets("Feuil2").Range("J:M").EntireColumn.Hidden = False
ElseIf Not Application.Intersect(Target, Range("F10")) Is Nothing Then
Application.ScreenUpdating = False
'*** masque les colonnes indiquées ****
If Target = "Non" Then Sheets("Feuil2").Range("N:Q").EntireColumn.Hidden = True
If Target = "Oui" Then Sheets("Feuil2").Range("N:Q").EntireColumn.Hidden = False
If Target = "Sélectionner votre choix" Then Sheets("Feuil2").Range("N:Q").EntireColumn.Hidden = False
End If
End SubJe n'ai pas pu tester ta solution mais merci quand même !
Bonjour,
Suite à ce code, mon fichier a un peu évolué, désormais, la valeur de la cellule F9 dans Feuil1 est issu d'une formule, et le code ne fonctionne plus.
Comment faire pour que le code "lise" la valeur de la cellule et non la formule svp ?
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Application.Intersect(Target, Range("F9")) Is Nothing Then
Application.ScreenUpdating = False
'*** masque les colonnes indiquées ****
If Target = "Non" Then Sheets("Feuil2").Range("J:M").EntireColumn.Hidden = True
If Target = "Oui" Then Sheets("Feuil2").Range("J:M").EntireColumn.Hidden = False
If Target = "Sélectionner votre choix" Then Sheets("Feuil2").Range("J:M").EntireColumn.Hidden = False
ElseIf Not Application.Intersect(Target, Range("F10")) Is Nothing Then
Application.ScreenUpdating = False
'*** masque les colonnes indiquées ****
If Target = "Non" Then Sheets("Feuil2").Range("N:Q").EntireColumn.Hidden = True
If Target = "Oui" Then Sheets("Feuil2").Range("N:Q").EntireColumn.Hidden = False
If Target = "Sélectionner votre choix" Then Sheets("Feuil2").Range("N:Q").EntireColumn.Hidden = False
End If
End SubBonsoir,
Prenez le code que je vous ai proposé et qui ale mérite d'être plus simple
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Sheets("Feuil1").Range("F9") = "Non" Then
Sheets("Feuil2").Columns("J:M").Hidden = True
Else
Sheets("Feuil2").Columns("J:M").Hidden = False
End If
If Sheets("Feuil1").Range("F10") = "Non" Then
Sheets("Feuil2").Columns("N:Q").Hidden = True
Else
Sheets("Feuil2").Columns("N:Q").Hidden = False
End If
End Sub