Résolu Affichage de données filtrées dans listview

jsebt

XLDnaute Junior
Bonjour a tous,

Je suis en train de créer une base de données clients pour mon association.
La gestion d'un client se fait au travers de 2 sheets, "Clients" et "Data"
Dans mon userform, je voudrais afficher dans ma listbox "historique", tous les contacts avec le client sélectionné plus haut dans le userform.
Je souhaiterais également que le dernier mouvements enregistré avec ce client soit pré rempli avec possibilité de le modifier.
J'ai essayé plusieurs choses, sans succés, si quelqu'un à une idée ou une piste :). (J'ai trouvé cette solution, mais je n'ai pas réussi à l'adapter. Je continue d'essayer: https://www.excel-downloads.com/threads/afficher-des-donnees-filtrees-dans-listbox.102739/

Merci par avance pour votre aide.

Sébastien
 

Fichiers joints

jsebt

XLDnaute Junior
Alors, j'essaye d'adapter un code pour faire mon filtre et l'afficher dans une listview (avec modification possible sur la ligne sélectionnée). Mais j'obtiens une erreur: Type défini par l'utilisateur non défini directment à l'ouverture sur :
VB:
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
MsgBox ListView1.SelectedItem
End Sub
Pas d'idée... Si quelqu'un en a une, je suis preneur... (Niveau super débutant..)
Merci par avance.
 

Fichiers joints

Dranreb

XLDnaute Barbatruc
Il doit vous manquez la bibliothèque MSComctlLib
Dans les références cochez la Microsoft Windows Common Controls 6.0 (SP6)
Si vous avez du mal à la localiser, Parcourir… Cherchez un MSCOMCTL.OCX. Chez moi il est sur C:\Windows\SysWOW64
 

jsebt

XLDnaute Junior
Bonjour Dranreb et merci pour ta réponse,

Microsoft Common Controls 6.0 est bien coché.
En revanche MSCOMCTL.OCX ne se trouve pas sur mon ordi.
Je vais l'installer et je te dis si ca à marché. Merci pour la piste en tout cas. (J'avais trouvé la solution de coché Controls sur les forum, mais pas le MSCOM :))
Merci et bonne soirée.

Sébastien
 

Dranreb

XLDnaute Barbatruc
Si la référence est cochée le chemin du fichier est indiqué en dessous. Je serais bien étonné que ce soit autre chose qu'un chemin vers un MSCOMCTL.OCX !
 

jsebt

XLDnaute Junior
Et bien... Le chemin indiqué est bien le même que celui que tu indiques, mais MSCOMCTL.OCX n'est pas la. Et pas trouvé non plus dans la recherche...
Je vais le réinstaller et on verra...
 

jsebt

XLDnaute Junior
EUhhhh c'est à dire? Je ne connais pas ce problème, je ne regarde peut être pas ou il faut...
A part mon message d'erreur au lancement de mon formulaire depuis l'ajout du code pour ma listview, je n'ai rien vu d'autre...
 

jsebt

XLDnaute Junior
Maintenant que tu me dis çà:( j'ai récupéré ce code d'un autre fichier ou il marche très bien, je viens de tester...
C'est donc un bug dans mon code... Il ne doit pas trouver la référence, j'ai du me tromper.... Mmmm... Ben je vais continuer de chercher :)
Merci Dranreb, j'avance :)
 

Dranreb

XLDnaute Barbatruc
Lorsqu'un fichier indiqué par une référence n'existe pas au chemin où elle le demande elle apparait ainsi avec MANQUANT en majuscules.
Et en général une ListView est même virée d'un UserForm, et au lancement on a le message avec cette faute de français: Impossible de charger le objet car il n'est pas disponible sur cette machine.
 

Dranreb

XLDnaute Barbatruc
Eh bien j'ai ouvert votre fichier par curiosité, lancé une compile, suis tombé sur l'erreur, et vu que la référence que je vous avais indiquée n'était pas cochée. Je l'ai alors cochée puis j'ai fabriqué cette image où elle n'est pas encore rangée en haut avec celles qui étaient déjà cochées.
1032910
Et bien cette erreur là avait disparue quand j'ai relancé une compile.
 

jsebt

XLDnaute Junior
Rhoooo je ne regardais pas au bon endroit. Je passais par les controles avancés de la boite à outils...
<En voyant ton image, je suis passé par outils et référence. Et dans référence, je n'ai pas Microsoft Window Common Controls... (Mais c'est bizarre que ca marche quand même sur le fichier original, non?)
Je suis perdu... Ben je continu de chercher :)
 

jsebt

XLDnaute Junior
Yes, ben j'ai réinstallé MSCOMCTL.OCX à partir du site officiel. Et l'erreur à disparue. Cool, résolu.
Merci beaucoup Danreb. Je suis débutant, et j'apprécie vraiment ce forum ou je trouve toujours des solutions. J'apprends de jour en jour.
Bonne fin de soirée.

Sébastien
 

jsebt

XLDnaute Junior
Je n'ai plus cette erreur, mais ma listview reste vide... Encore du boulot pour demain:) Pour le moment, ca va être mon lit :)
 

jsebt

XLDnaute Junior
Bonjour le forum,

Merci Dranreb pour ton aide cette nuit. Au moins un point de débloqué.
Maintenant ma listview s'affiche correctement, mes titres de colonnes aussi, mais impossible d'afficher les données recherchées...
Je dois avoir une erreur dans mon code, et vu mon niveau j'ai du mal...
Si quelqu'un avait 2mn pour jeter un oeil?

Merci par avance, je ne sais pas comment j'aurai fait sans ce forum :)
 

Fichiers joints

Dranreb

XLDnaute Barbatruc
Bonjour.
Je n'y croyais pas tant ça me semblait improbable, alors que c'était pourtant la seule explication possible, mais j'ai bien fini par trouver une Public C As Byte dans le module Mdl_Variables. Vous ne pouvez alors pas l'utiliser comme Range dans une procédure sans l'y déclarer comme tel en variable locale. D’où le message de compilation Objet requis.
Notez que personnellement je ne fais jamais de Find dans une base de donnée. Je m'arrange pour savoir en permanence à l'avance où sont les éléments que je propose dans les ComboBox. J'ai des modules de service qui se chargent de gérer tout ça.
 

jsebt

XLDnaute Junior
Ahhhhhh mais biensûr... J'utilise déjà le C pour le pré remplissage de ma partie Client.... Merci encore :):)
Pour être honnête avec toi, je suis hyper débutant. Rien n'est totalement de moi. Je prends des bouts de codes a droite et à gauche et j'adapte comme je peux. J'apprends en même temps du coup. J'essaye de créer l'outils adéquat pour mon asso, sans budget, alors je mets les mains dedans :)
Heureusement que beaucoup de gens comme toi prennent le temps pour les petits comme moi :) . Je suis clairement bien au delà de mes compétences en la matière... Mais je m'améliore chaque jour.

J'ai utilisé le "find" parce que c'est le code que j'ai trouvé pour utiliser listview. Après le but est de pré remplir la partie "dernier mouvement" avec le dernier mouvement du client sélectionné dans ma "recherche par nom" ou avec la ligne sélectionnée dans la listview avec modification possible.
Une chose à la fois, mais si tu as une autre piste à suggérer, n'hésite pas je suis preneur :) J'ai vu pas mal d'exemple avec les listview, d'ou ce choix.
Merci encore une fois.
 

Dranreb

XLDnaute Barbatruc
Disons que la ressource permet d'éviter d'avoir à programmer pas mal de choses au prix de quelques principes généraux: ne jamais travailler directement avec les cellules, toujours par l'intermédiaire de tableaux dynamiques VBA d'une seul ligne ou de toute la base selon le besoin, et travailler de préférence avec des plages mises sous forme de tableaux Excel.
Je joins le classeur précurseur du complément xlam.
 

Fichiers joints

jsebt

XLDnaute Junior
Merci DranReb, mais je crois que là... On est largement au dessus de mes compétences...

Bon du coup, j'ai trouvé un code qui fait exactement ce que je veux faire. J'essaye de l'adapter, mais idem, ca bug. Je continue de chercher, tout en continuant d'espérer votre aide :)

J'obtiens une erreur: Impossible de lire la propriété Column.
Les 2 fichiers sont joints. Le 1er est le code original le 2ème est ma tentative d'intégration dans mon document.
Merci par avance pour votre aide.

Sébastien
 

Fichiers joints

Discussions similaires


Haut Bas