Re : Masquage de colonnes conditionnel
Bonjour à tous,
Je réouvre ce sujet car j'ai utilisé vos fichiers, et cela m'a été très utile. Cependant, je bloque sur une petit aspect de ces macros appliqués à mon fichier.
Mon problème: j'ai deux onglets dans mon fichier excel. Un nommé "PTD" et l'autre "QTD". Cependant ils n'ont pas exactement la même mise en forme. e.g. dans l'onglet "QTD" la Target.Value va être en E3, et dans l'onglet "PTD", elle va être en B3.
Il m'est donc impossible d'appliquer ma macro aux différents onglets et donc d'utiliser le Activesheet.
Je suis donc parti sur un modele, comme suit:
Private Sub Worksheet_Change(ByVal Target As Range)
' J'annonce mes deux onglets
Dim sheet1 As Worksheet, sheet2 As Worksheet
On Error Resume Next
'Je renomme mes onglets dans la macro
Set sheet1 = PTD
Set sheet2 = QTD
' Je rentre dans mon onglet PTD (aka sheet1)
With sheet1
If Target.Address = "$B$3" Then
y = Target.Value
ActiveSheet.Range("G:BW").Columns.Hidden = True
Range(y).Columns.Hidden = False
End If
End With
' Pareil dans mon onglet QTD
With sheet2
If Target.Address = "$E$2" Then
x = Target.Value
ActiveSheet.Range("K:V").Columns.Hidden = True
Range(x).Columns.Hidden = False
End If
End With
End Sub
Malheureusement, cela ne marche que dans mon premier onglet...
Ma question est: comment faire pour que la première partie de ma macro ne s'applique que dans mon onglet PTD, et la seconde partie dans l'onglet QTD avec des attributs différents?
PS: j'ai essayé la macro sur un onglet, elle marche parfaitement.