Recherche si

Salut tulipe_4

Toi aussi tu as 3 doigts

Cdlt.

Moi, j'arrive même à compter jusque 10 ! voire 20 !!

Mais avec ma solution, juste l'index pour choisir un onglet suffit (bon, ok j'insiste mais je sors de suite ...)

Moi, j'arrive même à compter jusque 10 ! voire 20 !!

Mais avec ma solution, juste l'index pour choisir un onglet suffit (bon, ok j'insiste mais je sors de suite ...)

Steelson, ta proposition répond aussi à la demande faite, mais c'est à jensaisrien de s'en emparer et de te demander des explications concernant:

Oui j'ai regardé la solution de Steelson mais je ne trouve aucune formule, rien qui puisse me permettre d'adapter la formule au niveau des lignes colonnes, et textes. J'ai meme eu l'impression que c'était une saisie manuelle sur une autre feuille.

jensaisrien ne doit pas connaître le fonctionnement du VBA ? et moi je ne peux pas l'aider dans ce domaine ayant peu d'expérience en VBA pour pouvoir expliquer ce que tu as fais.

Cdlt.

mais c'est à jensaisrien de s'en emparer et de te demander des explications concernant:

Oui j'ai regardé la solution de Steelson mais je ne trouve aucune formule, rien qui puisse me permettre d'adapter la formule au niveau des lignes colonnes, et textes. J'ai meme eu l'impression que c'était une saisie manuelle sur une autre feuille.

jensaisrien ne doit pas connaître le fonctionnement du VBA ? et moi je ne peux pas l'aider dans ce domaine ayant peu d'expérience en VBA pour pouvoir expliquer ce que tu as fais.

Merci mdo, tu me tends la perche

Le code VBA est simplissime ...

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Name = "data" Or Left(Sh.Name, 5) = "Feuil" Then Exit Sub
        Sheets(1).ListObjects(1).Range.AdvancedFilter Action:=xlFilterCopy, _
            CriteriaRange:=Sh.Range("A1").CurrentRegion, CopyToRange:=Sh.Range("A6").CurrentRegion.Resize(1), Unique:=False
End Sub

Les données sur Feuil1 sont en tableau (pas obligatoire du reste, on peut adapter)

A l'activation d'une autre feuille, excel active un filtre avancé avec comme critère la "région" de A1, et les résultats selon les titres de colonnes ligne 6.

C'est transparent car on n'a rien à faire de plus que sélectionner l'onglet voulu.

Seul soucis, pas de cellules fusionnées en e-tête de colonnes !

super j'ai compris

Effectivement je faisais le ctrl + maj + entrée ailleurs comme un enregistrement de fichier.

Du coup j'ai compris et vu la différence, je peux modifier les critères à souhaits

Re Steelson,

Seul soucis, pas de cellules fusionnées en e-tête de colonnes !

Pas de soucis pour moi, il y a déjà longtemps que je ne fusionne plus les cellules dans mes fichiers, les leçons ont été apprises, quand aux en-têtes de colonne je comprends leurs utilités.

Toutefois, je viens de faire plusieurs feuilles en copiant une feuille derrière l'autre selon des contions choisies pour m’entraîner avec ta solution, ça fonctionne bien.

Mais, je me demande comment à partir de la Feuil1 tu crées une 2ème feuille (HC) par exemple, autre chose si tu permets ( Peux-tu commenter ton code ) et m'expliquer les étapes a faire à partir de la Feuil1.

J'avoue bien volontiers mes très faibles connaissances en VBA

Je veux bien apprendre en toute modestie de mes pairs.

Cdlt.

Je vous remercie tous pour le temps que vous m'avez accordé.

C'est délicat de demander de l'aide et ne pas pouvoir faire autre chose en retour pour vous.

Je ne connais pas les macros en effet. Et puis mon fichier est déjà si compliqué avec son nombre de feuilles et nos attentes.

J'ai beaucoup de conditions qui se cumulent et de variantes qu'il me faut des solutions simples et que je puisse m'en emparer en effet.

Encore une fois , un GRAND merci , vous m'avez retiré une épine du pied à moi et mes collègues.

super j'ai compris

Effectivement je faisais le ctrl + maj + entrée ailleurs comme un enregistrement de fichier.

Du coup j'ai compris et vu la différence, je peux modifier les critères à souhaits

Eh ben voilà donc nos formules fonctionnaient n'est-ce pas

Moi j'essaie de comprendre la solution de Steelson, donc je ne fais pas le malin non plus

Bonne journée.

Mais, je me demande comment à partir de la Feuil1 tu crées une 2ème feuille (HC) par exemple, autre chose si tu permets ( Peux-tu commenter ton code ) et m'expliquer les étapes a faire à partir de la Feuil1.

J'avoue bien volontiers mes très faibles connaissances en VBA

En fait je ne créé pas une 2eme feuille

La feuille 1 c'est un service avec 40 chambres qu'on peut appeler A

La feuille 2 c'est un service avec 40 chambres qu'on peut appeler B

Sur A il y a un certains nombres de gens qui mangent en chambre .

Sur B il y a un certains nombre de gens qui mangent en salle à manger .

Nous avons 2 chariots de repas pour ceux qui mangent en salle à manger => N case vide et ceux qui mangent en chambre => N = A ou S ou B ou PS ( ça correspond à des échelles de plateaux).

Mes filles qui commandent les repas à la cuisine doivent savoir combien des gens A + S + B + PS ça donne et idem pour la salle. Ca j'ai pu tout adapter avec des NB.SI.ENS . Mais parfois elles oublient pour qui sont les entrées si dures pour les gens en plateaux. J'avais besoin des noms. J'ai désormais cette liste grâce à vous.

Mon fichier comporte d'autres aspects avec lesquels je dois faire

super j'ai compris

Effectivement je faisais le ctrl + maj + entrée ailleurs comme un enregistrement de fichier.

Du coup j'ai compris et vu la différence, je peux modifier les critères à souhaits

Eh ben voilà donc nos formules fonctionnaient n'est-ce pas

Moi j'essaie de comprendre la solution de Steelson, donc je ne fais pas le malin non plus

Bonne journée.

Oui elles fonctionnaient trés bien, c'est moi qui n'avait pas vu la différence avec les {}

Oui elles fonctionnaient trés bien, c'est moi qui n'avait pas vu la différence avec les {}

Pas de soucis, merci d'avoir mis la discussion en résolu.

Mais, je me demande comment à partir de la Feuil1 tu crées une 2ème feuille (HC) par exemple, autre chose si tu permets ( Peux-tu commenter ton code ) et m'expliquer les étapes a faire à partir de la Feuil1.

La seconde feuille est pré-crée avec les en-têtes de colonnes et les critères de filtre,

par contre elle se remplit automatiquement.

Sur le coup, c'est très simple si tu connais les filtres avancés.

Tu fais un enregistrement de macro et ensuite tu retouches légèrement ...

Cela donne ceci

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
' cette macro se met dans ThisWorkbook, elle est valable pour toutes les feuilles lors de l'activavtion de ces dernières

    ' je mets généralement les données dans une feuille data
    ' par ailleurs, lorsque l'on crée une nouvelle Feuille 'FeuilXX' il faut éviter le fonctionnement de la macro
    If Sh.Name = "data" Or Left(Sh.Name, 5) = "Feuil" Then Exit Sub

    ' ce qui suit n'est rien d'autre que l'enregitrement arrangé d'un filtre avancé
    ' Sheets(1).ListObjects(1) c'est le tableau de la première feuille
    ' le critère c'est la "région" de cellule A1 de la feuille, cela permet d'autres critères en B1, C1, et permet aussi d efaire du "OU" dans les critères en mettant plusieurs lignes
    ' le résultat est ici donné d'après les en-têtes ligne 6 : Range("A6").CurrentRegion.Resize(1), la région de A6 redimensionnée à sa première ligne
    Sheets(1).ListObjects(1).Range.AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Sh.Range("A1").CurrentRegion, _
        CopyToRange:=Sh.Range("A6").CurrentRegion.Resize(1), Unique:=False

End Sub

Un exemple mutlilignes ("OU") multicrières

Ici la macro réagit directement à l'entrée des critères.

4filtre-auto.xlsm (16.79 Ko)

Re Steelson,

Génial, un grand merci pour ses explications claires et précises ainsi que les commentaires du code.

Mais là ou je ne comprenais pas c'était lors de la création de la première feuille et donc ce qui me manquait pour comprendre se trouve dans ce commentaire:

' par ailleurs, lorsque l'on crée une nouvelle Feuille 'FeuilXX' il faut éviter le fonctionnement de la macro

Je laissais le code actif, donc voila le pourquoi du comment je n'y arrivais pas

Je viens de faire des essais avec tous ses bons conseils donnés généreusement et ça marche, donc je te remercie encore d'avoir pris du temps pour répondre à un p'tit joueur du VBA comme moi, c'est sympa de ta part.

J'espère simplement ne pas oublier cette leçon.

Merci encore et bonne soirée.

Rechercher des sujets similaires à "recherche"