Affecter une macro a une valeur de cellule
miniboo
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
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
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
Configuration: Windows XP Internet Explorer 7.0
1 réponse
-
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