OVH Cloud OVH Cloud

macro

1 réponse
Avatar
Isabelle
Bonjour, on m'a donné cette macro (qui fonctionne très bien) pour que mon
filtre élaboré s'exécute automatiquement chaque fois que la cellule de
critère change :



Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2:B2")) Is Nothing Then Exit Sub
Range("A3:B50").AdvancedFilter xlFilterInPlace, Range("A1:B2")
End Sub



Voici mon problème :



la macro fonctionne tant que l'on tape directement dans la cellule critère
mais pas quand c'est une formule qui renvoi la valeur (formule toute simple
qui renvoi simplement la valeur contenue dans une cellule d'une autre
feuille (ex : "=feuil!b3").



Pouvez vous m'aider ?



Merci d'avance.

1 réponse

Avatar
michdenis
Bonjour Isabelle,


J'aimerais seulement porter à ton attention la possibilité d'appeler un événement associé à une autre feuille dans le
code de la feuille module d'une autre feuille.

Voici un petit exemple que tu peux copier dans un classeur vierge pour les fins de la démonstration.

Dans le code de la feuille module "Feuil1", la procédure suivante :

Remarque que j'ai enlevé le mot "Private" dans la déclaration de la
procédure pour la rendre accessible à d'autre module.
'------------------------------------------
Sub Worksheet_Change(ByVal Target As Range)

MsgBox Target.Value

End Sub
'------------------------------------------

Maintenant suppose que je veuille appeler la procédure définie précédemment seulement si la cellule A1 de la "feuil2"
est modifiée, je pourrais faire ceci : Le code suivant étant situé dans la feuille module de la "feuil2".
'------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = Range("A1").Address Then
If Target <> "" Then
Feuil1.Worksheet_Change Target
End If
End If

End Sub
'------------------------------------------


Maintenant, il te reste à l'appliquer à ton exemple !


Salutations!









"Isabelle" a écrit dans le message de news:cirmn3$qg3$
Bonjour, on m'a donné cette macro (qui fonctionne très bien) pour que mon
filtre élaboré s'exécute automatiquement chaque fois que la cellule de
critère change :



Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2:B2")) Is Nothing Then Exit Sub
Range("A3:B50").AdvancedFilter xlFilterInPlace, Range("A1:B2")
End Sub



Voici mon problème :



la macro fonctionne tant que l'on tape directement dans la cellule critère
mais pas quand c'est une formule qui renvoi la valeur (formule toute simple
qui renvoi simplement la valeur contenue dans une cellule d'une autre
feuille (ex : "þuil!b3").



Pouvez vous m'aider ?



Merci d'avance.