Filtrer à partir d'un choix dans une liste de validation

hajorinette

XLDnaute Occasionnel
Bonjour Xldiens Xldiennes,

Sur un premier onglet , je choisis dans une liste de validation une FAMILLE (A,B,C....dans mon exemple, "mais dans mon fichier réel c'est un code à 5 chiffres")

Je souhaite que dans le second onglet:

on parcourt la première colonne [A] pour récupérer toutes les lignes qui reprennent le code famille dans cette colonne, sachant qu'on le cherche toujours au début de l'expression.


Je joins un fichier explicatif

Merci d'avance
 

Pièces jointes

  • Classeur1filtre auto.xls
    31.5 KB · Affichages: 123

pierrejean

XLDnaute Barbatruc
Re : Filtrer à partir d'un choix dans une liste de validation

bonjour hajorinette

Vois si cela te convient

NB: Dans le code il y a un 1 a remplacer par 5 pour ton fichier reel
 

Pièces jointes

  • Classeur1filtre auto.zip
    11 KB · Affichages: 111
Dernière édition:

david84

XLDnaute Barbatruc
Re : Filtrer à partir d'un choix dans une liste de validation

Bonjour,
=SI(LIGNES($1:1)<=NB.SI($A$1:$A$9;Feuil1!$A$10&"*");INDEX(A$1:A$9;PETITE.VALEUR(SI(GAUCHE($A$1:$A$9;1)=Feuil1!$A$10;LIGNE(INDIRECT("1:"&LIGNES(Feuil2!$A$1:$A$9))));LIGNES($1:1)));"")

Formule matricielle à valider par ctrl, maj et entrée et à tirer vers la droite et le bas.

Les 0 peuvent être masqués par une mise en forme conditionnelle sinon :
=SI(SI(LIGNES($1:1)<=NB.SI($A$1:$A$9;Feuil1!$A$10&"*");INDEX(A$1:A$9;PETITE.VALEUR(SI(GAUCHE($A$1:$A$9;1)=Feuil1!$A$10;LIGNE(INDIRECT("1:"&LIGNES(Feuil2!$A$1:$A$9))));LIGNES($1:1)));"")=0;"";SI(LIGNES($1:1)<=NB.SI($A$1:$A$9;Feuil1!$A$10&"*");INDEX(A$1:A$9;PETITE.VALEUR(SI(GAUCHE($A$1:$A$9;1)=Feuil1!$A$10;LIGNE(INDIRECT("1:"&LIGNES(Feuil2!$A$1:$A$9))));LIGNES($1:1)));""))
Cordialement

Edit : bonjour pierrejean
 
Dernière édition:

hajorinette

XLDnaute Occasionnel
Re : Filtrer à partir d'un choix dans une liste de validation

Merci beaucoup pierrejean et david84

j'ai commencé par tenter la proposition de pierrejean sauf que pour une raison inconnue ça me masque tout à chaque fois

il est vrai j'ai modifié le code un peu car finalement je n'ai plus besoin du cas 'toutes les familles' mais je ne pense pas que cela soit la raison
des pistes...?

Private Sub Worksheet_Change(ByVal Target As Range) ' au passage je compte rajouter une macro Worksheet_Change dans cette même feuille , quelle serait alors la syntaxe?

If Target.Address = "$D$24" Then
Sheets("Coller données Vigilens par Mag").Rows.Hidden = False
DerLin = Sheets("Coller données Vigilens par Mag").Range("A65536").End(xlUp).Row
For n = 1 To DerLin
If Left(Sheets("Coller données Vigilens par Mag").Range("A" & n), 5) = Target Then
Sheets("Coller données Vigilens par Mag").Rows(n).Hidden = False
Else
Sheets("Coller données Vigilens par Mag").Rows(n).Hidden = True
End If

Next n
End If
Sheets("Coller données Vigilens par Mag").Select
End Sub


Merci pierrejean
 

hajorinette

XLDnaute Occasionnel
Re : Filtrer à partir d'un choix dans une liste de validation

Après avoir traité mes données ,j'ai enlevé le fonction left et ça marche comme par magie!
En revanche j'aimerais savoir quelle est la syntaxe pour associer l'activation d'une macro à n'importe quel changement dans une cellule donnée
ya il des conditions particulières quand il ya 2 macros dans une feuille?

Merci beaucoup
 

hajorinette

XLDnaute Occasionnel
Re : Filtrer à partir d'un choix dans une liste de validation

J'ai une autre question tant que jy suis:p

Dans le vrai fichier le choix de famille qui se fait dans la 1ere feuille ne se fait pas dans une cellule avec une liste de validation mais plutot avec une formule:
le nom de famille est extrait dune cellule à coté en utilisant la fonction gauche().
ça change la donne completement puisque la macro marche quand j'enleve la formule et je tape le code famille directement


merci ..encore
 

hajorinette

XLDnaute Occasionnel
Re : Filtrer à partir d'un choix dans une liste de validation

J'ai essayé d'être la plus claire possible dans le fichier , j'espère que ça fera l'affaire.


Je reste connecté tout l'après-midi pour répondre à toutes les éventuelles questions

merci beaucoup!
 

Pièces jointes

  • EXP_XLD.xls
    28 KB · Affichages: 112

pierrejean

XLDnaute Barbatruc
Re : Filtrer à partir d'un choix dans une liste de validation

Re

Merci pour l'effort

Version avec
Macro adaptée pour selection a partir de la liste de validation
Bouton conduisant a la création des feuilles et impression

Teste et dis-nous
 

Pièces jointes

  • EXP_XLD.zip
    19.4 KB · Affichages: 83
  • EXP_XLD.zip
    19.4 KB · Affichages: 82
  • EXP_XLD.zip
    19.4 KB · Affichages: 77

hajorinette

XLDnaute Occasionnel
Re : Filtrer à partir d'un choix dans une liste de validation

J'ai testé sous toutes les coutures

C'est à 70% le fichier de mes rêves, je m'explique:

il me faudrait pouvoir imprimer
  • soit le magasin sélectionné dans la liste déroulante en feuille 1
  • soit comme le fichier proposé le fait très bien la totalité des magasins (présents dans la liste ET la BDD de la feuille2)
Pour cela jimagine tout à côté du bouton "imprimer" que j'ai rebaptisé "Print all" un 2ème bouton "Print one" qui a le même rôle que le "print all" mais que pour le magasin sélectionné, ce qu'il a en plus il renvoie une msg box " magasin xx inexistant dans la BDD", si on essaie avec un magasin dans la liste et pas dans la BDD

De plus et promis c'est la toute dernière demande sur ce fichier: est il possible qu'au moment de la création des feuilles j'utilise une feuille déjà existante que j'apelle 'trame' elle contient la mise en page le logo et deux colonnes en plus (Si c'est utile je l'enverrai)


Merci encore pour ton aide
 

pierrejean

XLDnaute Barbatruc
Re : Filtrer à partir d'un choix dans une liste de validation

Re

voila avec bouton supplementaire (macro adaptée de la precedente)
Pour la feuille Trame , je crois preferable que tu la postes
J'ai mis l'avertissement (n'existe pas ) dans les macros : si pas OK le signaler
A tester bien evidemment
 

Pièces jointes

  • EXP_XLD.zip
    24.9 KB · Affichages: 59
  • EXP_XLD.zip
    24.9 KB · Affichages: 63
  • EXP_XLD.zip
    24.9 KB · Affichages: 63

hajorinette

XLDnaute Occasionnel
Re : Filtrer à partir d'un choix dans une liste de validation

Bonjour Pierrejean

Le bouton rajouté marche très bien il reste vraiment très peu pour que ça soit nickel.


  • 'J'ai besoin des msgbox juste pour la macro printun donc je les ai enlevé de la macro imprim()
  • 'je veux imprimer deux copies pour chaque feuille
  • 'je veux fermer les feuilles créées après impression
  • 'La trame ou les données doivent aller est jointe, en revanche tu remarqura qu'elle va chercher pas mal dans la BDD jespère que ça ne pose pas problème elle contient également une fonction rechercherv


MERCI POUR TOUT
 

Pièces jointes

  • trame.xls
    46.5 KB · Affichages: 105

pierrejean

XLDnaute Barbatruc
Re : Filtrer à partir d'un choix dans une liste de validation

Re
j'ais été pas mal occupé (mise en place d'un LCD 23" en lieu et place de mon venerable 19" cathodique en sus de mes contraintes coutumieres)
Quand tu dis fermer faut-il entendre supprimer ?
Concernant les formules (ce n'est pas ma specialité) peux-tu me les expliciter S.T.P ?
Je reprends demain
 

hajorinette

XLDnaute Occasionnel
Re : Filtrer à partir d'un choix dans une liste de validation

Bonjour Pierrejean

Au nom de tous les XLDnautes je te souhaite la bienvenue dans l'ère du LCD! ahh c'était mieux avant !! :p

Sinon pour répondre à tes questions, oui je voulais bien dire la suppression des feuilles une fois imprimées

Je remets les choses dans le contexte:

• Le classeur va contenir 4 feuilles
o La feuille 1 ou il ya les boutons d’exécution des macros
o La feuille 2 qui constitue la base de données
o La feuille 3 qui constitue la trame ou viennent se rajouter les données de la BDD avant impression
o La feuille 4 qui comporte simplement un tableau qui nous permettra de remplir avant impression les deux dernières colonnes de la trame


Il ya deux grandes actions à faire sur ce fichier :

Action 1 concernant évidemment la trame.
L’idée est au lieu de créer une (ou plusieurs) nouvelle(s) feuille(s) à chaque fois qu’on clique sur un des deux boutons, on copie la trame, autant de fois qu’il le faut en la renommant exactement pareil qu’avant[Code et nom du magasin],

Il est vrai qu’en plus de reprendre des données de la BDD, la trame contient également des formules simples je ne sais pas si les garder est compatible avec la copie.

J’explicite alors les formules :
Dans la cellule F11 de la trame une simple concaténation de texte.

La colonne G de la trame, va reprendre ‘le prix’ de la colonne W de la BDD, en prenant le soin de ne pas facturer le client (=0) si le prix à la BDD est inférieur ou égal à 10.

La colonne H de la trame reprend le prix de la colonne G le multiplie par 1.4 et l’arrondie (fonction round ?) pour avoir un entier.

Enfin les colonnes I et J de la trame vont chercher quel code a été mis à la colonne X de la BDD, et plutôt que de mettre ce code, on met son équivalent en commentaire français à la colonne I et en commentaire anglais à la colonne J, qu’on va chercher à la feuille libelléNonRéparabilité.

Par l’équivalent du code j’entends les commentaires qui se trouvent à la même ligne.
Par exemple pour un cas ou la colonne X n’est pas renseignée à la BDD (code=0) on met commentaire 3/commentary3.

Ne pas traiter le cas ou le code est dans la colonne X de la base de données et pas dans la feuille libelléNonRéparabilité.


Action 2 :

Elle est un peu délicate à expliquer, elle concerne la manière avec la quelle tu parcours les magasins à la feuille 1.
Est-il possible de les parcourir directement dans la liste de validation ?
Car j’ai bien mes magasins stockés au dessus de la liste de validation mais PAS sur une seule colonne mais 31.
UNE COLONNE PAR PAYS
Ensuite j’ai juste avant la liste de validation telle que présentée à la feuille 1, une autre liste de validation qui me permet de choisir le pays et de renseigner automatiquement dans la deuxième les magasins qui y existent.

Un exemple est à poster de suite si ce n'est pas assez clair


MERCI encore et encore et ....


Bonne matinée à tout le monde
 

Discussions similaires

Réponses
8
Affichages
478

Statistiques des forums

Discussions
312 520
Messages
2 089 294
Membres
104 092
dernier inscrit
karbone57