Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Listview selon certains critères

osiris150

XLDnaute Occasionnel
Bonjour le forum !

Je viens solliciter votre aide pour m'aider à résoudre un problème que je suis incapable de résoudre par moi-même.
Voilà j'ai 2 fichiers : 1 qui s'appelle "test" et l'autre "Base de données Promotion"
Lorsqu'on ouvre le fichier "test" et que l'on clique sur le camion, cela ouvre un userform. On clique sur le bouton "consultations échantillons" et là ouvre une listview qui fait appelle au fichier"Base de données Promotion". Jusque là tout va bien.

Dans le userform qui apparaît avec la listview il y a en haut à droite un bouton "Detail" Celui-ci lorsque l'on clique dessus fait apparaître un autre userform avec un tableau remplit de chiffres.
Celui-ci est alimenté par l'onglet "Budget" du fichier "Base de données Promotion". Tout cela j'ai pu arriver à le faire.

Maintenant ce que je souhaiterais c'est pouvoir aller plus loin. Je m'explique dans ce userform que j'ai appelé "tableau de bord détaillé" on a une liste de ville "Orvault", "La baule" etc...
Chaque ville à 2 textbox associées : une correspond à la colonne "budget" et l'autre à la colonne "réalisé". Je souhaiterais crée des boutons pour chaque ville, c'est à dire qu'en cliquant par exemple sur Orvault, cela affiche une listview qui reprennes les colonnes C à M de l'onglet "BaseP". Par contre dans cette dernière, les données qui doivent apparaître doivent faire appel à certains critères.
1er critère) Il faut chercher dans l'onglet "BaseP" du fichier "Base de données Promotion" dans la colonne E toutes les lignes ou le type est mis "Panneaux"
2ème critère) Il faut chercher aussi dans la colonne H toutes les lignes ou le nom de l'agence est mis "Orvault"
3ème critère) Il ne faut pas inclure les lignes qui ont écrit dans la colonne H le mot "Salle Expositions"
En clair on recherche tous les "panneaux" de l'agence "d'Orvault" et qui ne sont pas pour une "Salle expositions".
On répète l'opération pour chaque agence

Voilà c'est pas évident à expliquer. J'espère neanmoins que vous pourrez m'aider.
Je vous joint les deux fichiers nécessaires en exemple
Merci par avance
Nicolas
 
Dernière édition:

CHALET53

XLDnaute Barbatruc
Re : Listview selon certains critères

Sur l'image que tu m'as transférée, il y a (en superposition) 3 userforms
le 1er où est inscrit : Recherche (à gauche il y a une zone de saisie qui permet de rechercher les éléments correspondant au choix effectué. C'est ce nom qui m'intéresse
Avant de cliquer sur Détails (en haut à droite), tu dois d'abord faire un choix, dans la zone ci-dessus décrite, lancer Recherche. La suite dépend de ce choix
 

CHALET53

XLDnaute Barbatruc
Re : Listview selon certains critères

Pour compléter sur le userform resultatbase, la méthode de recherche est, à mon sens, incomplète.
En effet si tu testes dans la zone avec une simple lette (P par exemple)
Regarde la liste qui s'affiche (tu as la ligne d'entête en prime)
Si tu annules ta saisie, il faudrait réinitialiser la liste à la liste initiale
Il faudrait être plus sélectif dans ce qui peut être saisi

enfin vu de ma fenêtre

a+
 

osiris150

XLDnaute Occasionnel
Re : Listview selon certains critères

Bonjour Chalet53,

Je te remercie pour tes conseils afin d'améliorer mon code. Je vais le modifier.
Je viens de tester à mon travail tes fichiers et même problème rien ne s'affiche. Pourtant j'ai fait comme tu m'as dit. Je fais une première sélection par la recherche de la 1ère listview, après je clique sur détail puis sur une ville et là rien...
Je ne comprend pas. Je vais essayer de regarder le code d'un peu plus près voir si j'arrive à me débrouiller. Mais c'est pas gagné !
Bonne journée
Nicolas.
 

CHALET53

XLDnaute Barbatruc
Re : Listview selon certains critères

Il faut qu'il y ait identité parfaite entre la saisie dans la zone de recherche (y compris majuscule) et le contenu du fichier
Un fichier qui transforme la 1ère lettre en majuscule
 

Pièces jointes

  • osiris.zip
    194 KB · Affichages: 54
  • osiris.zip
    194 KB · Affichages: 50
  • osiris.zip
    194 KB · Affichages: 49

osiris150

XLDnaute Occasionnel
Re : Listview selon certains critères

re,

ça y est ça marche !! Impeccable. Merci !!
Par contre je me demandais pourquoi as-ton besoin de saisir dans la zone de recherche préalablement dans le premier userform. Est-ce que l'on ne pourrait pas éviter cette manip et directement avoir le résultat souhaité en cliquent sur la ville ?
Je pose juste la question car après je ne sais pas ce que cela engendre comme modification au niveau du code.
En tous cas ça a bien avancé !
 

CHALET53

XLDnaute Barbatruc
Re : Listview selon certains critères

Dans ton exemple tu m'avais donné : Panneaux
Si c'est toujours Panneaux, on met le mettre en dur
Si tu veux les Carrelages, tu fais comment ?
Il faut bien saisir l'info quelque part, non

a+
 

CHALET53

XLDnaute Barbatruc
Re : Listview selon certains critères

Tu fais click droit sur le userform2 (choisir code)
Dans la procédure Private userform_initialize, tu modifies la ligne en gras en remplaçant "Application.Proper...." par "Panneaux"
pour obtenir :

For i = 3 To Sheets("BaseP").Range("A65536").End(xlUp).Row
If Cells(i, 8) <> ville Or Cells(i, 5) <> "Panneaux" Or Cells(i, 9) = "Salle Exposition" Then GoTo suite
 

osiris150

XLDnaute Occasionnel
Re : Listview selon certains critères

ok c'est parfait !! je suis pleinement satisfait.
Est-ce que je peux te demander juste une dernière chose ? Par ce que je ne connais pas la syntaxe.

Dans cette ligne "If Cells(i, 8) <> ville Or Cells(i, 5) <> "Panneaux" Or Cells(i, 9) = "Salle Exposition" Then GoTo suite"

si je veux rajouter un critère du style ne faire apparaître que les dates supérieures au 15/11/2011 (colonne 12).
Comment on peut faire ?

Après je ne t'embête plus c'est promis.
 

CHALET53

XLDnaute Barbatruc
Re : Listview selon certains critères

j'ai mis 04/12/2011 pour valider le test car avec 15/11/2011, il n'y a pas d'exclusion

If Cells(i, 8) <> ville Or Cells(i, 5) <> "Panneaux" Or Cells(i, 9) = "Salle Exposition" Or Cells(i, 12) <= "04/12/2011" Then GoTo suite


Ceci dit : tu la mets en dur dans la ligne de code, c'est pas génial
 

CHALET53

XLDnaute Barbatruc
Re : Listview selon certains critères

oui
Tu mets ta date dans une cellule du fichier test et que tu nommes :datelimite (par exemple)
et dans le code, tu remplaces <= "15/12/2011" par <=Range("datelimite").Value
 

osiris150

XLDnaute Occasionnel
Re : Listview selon certains critères

parfait c'est très clair encore une fois. Je crois que cette fois j'ai fait le tour de ce qu'il me fallait.
Un énorme merci pour ta contribution !!
Passes une bonne journée
Amicalement
Nicolas
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…