Affecter une macro a une valeur de cellule

Fermé
miniboo - 22 juil. 2009 à 15:53
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 22 juil. 2009 à 23:00
Bonjour à Tous,

Je suis débutante dans la programmation, et j'ai peur que mon post soit mal placé!

En fait, je cherche à affecter une macro (qui affiche une colonne) lorsque la valeur 1 est selectionnée dans une liste de choix (données-validation) 1 ou 2.

le code si dessous me le permet:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B4").Value = "1" Then
Run "affichercolonne"
Else: Run "cachercolonne"
End If
End Sub

Cependant, je souhaiterais affecter cette fonction non seulement à la cellule B4 mais aussi aux cellules suivantes de la même colonne (B5,B6,B7,...Bn).

Je pense que ca doit etre quelquechose du style :
Range(ActiveCell, ActiveCell.End(xlDown)).Select

Mais je n'arrive pas à trouver la bonne formule!
Si quelqu'un peut me débloquer ca serait super!!

Merci d'avance à tous!

Miniboo
A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
22 juil. 2009 à 23:00
Bonsoir

essaies:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim zone As Range
'restreint l'évènement à B4:Bn (Bn étant la dernière cellule non vide dans col B)
Set zone = Range(Cells(4, 2), Cells(Range("B65536").End(xlUp).Row, 4))
If Intersect(Target, zone) Is Nothing Then: Exit Sub

'target est la cellule active
If Target = 1 Then
    affichercolonne
Else
    cachercolonne
End If
Set zone = Nothing
End Sub
0