Fonction Filter sans changer de feuille

Bonjour,

Ce code fonctionne bien mais j'aimerai ne pas changer de feuille.
Si vous avez une autre méthode que ce code je suis preneur.

Le but finale est d'avoir les numéros de ligne qui correspondent à plusieurs critères dans des colonnes d'une autre feuille.

Voici mon code dans lequel je change de feuille "Sheets(a)" mais j'aimerai ne pas faire cet manipulation visuelle...

Merci pour votre aide

 
Application.EnableEvents = False
Application.ScreenUpdating = False

Range("C1:C200").Select
    Selection.ClearContents
Range("C1").Select

a = Cells(2, 9).Value
b = Cells(5, 9).Value
c = Cells(5, 10).Value
d = Cells(5, 11).Value

Sheets(a).Select
Cells(1, 27).Value = b
Cells(1, 28).Value = c
Cells(1, 29).Value = d
x = Filter(Application.Transpose(Application.Evaluate("=IF((A2:A20000=AA1)*(B2:B20000=AB1)*(C2:C20000=AC1),ROW(A2:A20000),""x"")")), "x", False)

Range(Cells(1, 27), Cells(1, 29)).Selection.ClearContents
Range("C1").Select

Sheets("Message").Select
For zz = 0 To UBound(x)
Cells(zz + 1, 3).Value = x(zz)
Next zz
Application.ScreenUpdating = True
Application.EnableEvents = True

Bonjour,

Sans fichier c'est pas facile de vous aidez, Qu'est ce qui vus gène exactement ? Qu'est ce que vous appelez manipulation visuelle ?

Bonjour,

Le fichier est très simple. Une feuille "a" une feuille "message".

Dans la feuille "message" j'écris 3 critères de sélection.

La macro prend ces 3 critères, va dans la feuille "a" et les écrit dans la première ligne colonne 27, 28 et 29 et avec la formule :

x = Filter(Application.Transpose(Application.Evaluate("=IF((A2:A20000=AA1)*(B2:B20000=AB1)*(C2:C20000=AC1),ROW(A2:A20000),""x"")")), "x", False)

je récupère les lignes dont les colonnes correspondent au 3 critères et avec ça j'écris les numéros de ligne dans la feuille "message".

Le problème vient que pour appliquer cette formule je dois être dans la feuille "message", même si cela ne dure que quelques seconde je suis obliger d'écrire et d'effacer dans la feuille "a".

Merci pour votre aide

Ce que vous me décrivez la, doit surement être possible via une requête Power Query, si vous avez un exemple de la base et du résultat escompté je peux vous montrez.

Et pour ce que vous souhaitez faire, désolé mais pour moi c'est impossible de comprendre sans fichier ce que vous entendez par :

"Le problème vient que pour appliquer cette formule je dois être dans la feuille "message", même si cela ne dure que quelques seconde je suis obliger d'écrire et d'effacer dans la feuille "a"."

Bonjour,

Voici le fichier simplifié

J'ai refait ma macro pour la localisation des informations mais sinon c'est la même

7test.xlsm (36.85 Ko)

Bonjour,

Je suis vraiment pas sur d'avoir compris mais j'ai modifié deux trois trucs. dites moi si c'est ce que vouliez ?

Maintenant vous pouvez lancer la macro de n'importe quel feuille.

5test-6.xlsm (35.50 Ko)

Bonjour,

J'aimerai avoir le même résultat que la macro existante sans le changement de feuille.

Voici le code existant :

Sheets(a).Select
Cells(1, 5).Value = b
Cells(1, 6).Value = c
Cells(1, 7).Value = d
x = Filter(Application.Transpose(Application.Evaluate("=IF((A2:A20000=E1)*(B2:B20000=F1)*(C2:C20000=G1),ROW(A2:A20000),""x"")")), "x", False)

Range("E1:G1").ClearContents
Range("A1").Select

Je pourrai remplacer Cells(1,5).value=b par Sheets(a).Cells(1,5).Value = b pour ne pas faire le changement de feuille "Sheets(a).Select"

Le problème vient de x=Filter(Application...

Cette formule ne fonctionne qu'après "Sheets(a).Select" Si je n'ai pas selectionné la feuille il prendra les informations dans l'activesheet donc la feuille "Message"

Car je ne peux pas écrire x = Sheets(a).Filter(Application...

Mais qu'est ce qui vous gène avec le "changement de feuille" ? la macro s'exécute en moins d'une seconde, à l'oeil nu vous ne pouvez rien voir ?

et avec "Application.ScreenUpdating = False" vous ne devez rien voir, a moins que vous exécuter la macro en pas à pas ?

Sinon comme cela ca doit marcher mais c'est un peu tirer par les cheveux

10test-6.xlsm (36.09 Ko)

Merci. C'est ce qu'il me fallait.

Pas de soucis

Rechercher des sujets similaires à "fonction filter changer feuille"