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").
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <ip5@wanadoo.fr> a écrit dans le message de news:cirmn3$qg3$1@news-reader5.wanadoo.fr...
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").
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").