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
 

Pièces jointes

  • GDV_0806.xlsm
    468.5 KB · Affichages: 35

ChTi160

XLDnaute Barbatruc
Bonjour sébastien
Bonjour le Fil ,le Forum
quand tu dis :
A l'enregistrement d'un nouveau mouvement, j'obtiens une erreur 13, incompatibilité de type
c'est a partir du Userform "Usf_NouveauMouvement" et action sur le Bouton "Valider" ?
à quel niveau se trouve l'erreur ?
VB:
.Range("G" & L).NumberFormat = "dd/mm/yyyy"
.Range("G" & L).Value = Arrivee 'Date arrivée
.Range("J" & L).Value = Depart 'Date départ
.Range("J" & L).NumberFormat = "dd/mm/yyyy"
il faut peut être mettre une référence au Userform
comme Usf.Arrivee et Usf.Depart
avec Set Usf= Usf_NouveauMouvement
soit :
VB:
.Range("G" & L).NumberFormat = "dd/mm/yyyy"
.Range("G" & L).Value =Usf.Arrivee 'Date arrivée
.Range("J" & L).Value =Usf.Depart 'Date départ
.Range("J" & L).NumberFormat = "dd/mm/yyyy"
Peux tu m’éclairer ?
Merci
jean marie
 

jsebt

XLDnaute Junior
Bonjour Jean Marie et le reste du forum

Oui, l'erreur apparaissait au bouton validé dans mon Usf_NouveauMouvement. Et l'erreur était signalée dans le module Tblo qui est utilisé pour la création auto du planning.

J'ai essayé plusieurs choses qui n'ont pas marchées, mais j'ai fini par trouver le problème.
En fait j'en avais 2, pour les dates, mais pour les heures aussi.

Résolution:

VB:
Sheets("Data").Range("G" & L).Value = CDate(Arrivee) 'Date arrivée
Sheets("Data").Range("J" & L).Value = CDate(Depart) 'Date départ
Sheets("Data").Range("H" & L).Value = Format(Heurearrivee, "hh:mm:ss") 'Heurearrivee
Sheets("Data").Range("K" & L).Value = Format(Heuredepart, "hh:mm:ss") 'Heure départ

Comme çà ca marche, j'ai les bons formats d'enregistrement et mon planning est bien alimenté :)
(Juste dans le userfrorm ou le format de mes heures s'affiche en décimal)

Une bonne chose de faite, aller étape suivante
Merci encore de m'aider. Ca n'a l'air de rien, mais me donner la direction m'aide déjà énormément.

Sébastien
 

jsebt

XLDnaute Junior
Bonjour Jean Marie et le forum,

J'ai trouvé la solution et cela fonctionne :) Merci

Maintenant, je m'attaque a:
- l'auto sélection du 1 er client à l'ouverture du formulaire.
- Auto sélection du mouvement le plus récent à la sélection du client. (Pas trop d'idées pour çà.)

Un bug Incompatibilité de type a la validation de la modification de la modification du mouvement sélectionné dans le userform2
Et je dois encore faire le bouton modification du client sélectionné.

Et après çà je devrais être bon. (dernière version jointe)
Bonne fin de journée à tous, et... en Musique :)
 

Pièces jointes

  • GDV_2006.xlsb.xlsm
    573.5 KB · Affichages: 5

jsebt

XLDnaute Junior
Bonjour Jean Marie, et le reste du forum,

Je reviens vers toi, vous pour mon soucis d'auto sélection du client. J'ai essayé ta modification (Listindex = 0) dans tous les sens mais sans succès.
J'obtiens une erreur: Incompatibilité de type sur la partie du code qui me remplit mes champs mouvement: (plus exactement à cette ligne: For I = LBound(mots) To UBound(mots))

C'est le code dont nous avions déjà parlé avec le champ de recherche et la fonction Split. J'ai essayé de l'enlever (le split) mais idem sans succès, quand je touche à cette partie, j'ai le reste qui plante.
Et le split me cause des problèmes du coup, je me retrouve avec l'historique d'autres clients affichés (GRP-1 et GRP-10 par exemple vont être visibles sur la fiche du client GRP-1)

VB:
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'Partie Data, Recherche et préremplissage des champs
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Private Sub ComboBoxRef_Change()
  If Me.ComboBoxRef <> "" Then
     mots = Split(Trim(Me.ComboBoxRef), " ")
     Tbl = choix
     For I = LBound(mots) To UBound(mots)
        Tbl = Filter(Tbl, mots(I), True, vbTextCompare)
     Next I
     If UBound(Tbl) > -1 Then
        Dim b(): ReDim b(1 To UBound(Tbl) + 1, 1 To Ncol + 1)
        For I = LBound(Tbl) To UBound(Tbl)
          a = Split(Tbl(I), "|")
          j = a(NcolInt) - 1
          For k = 1 To Ncol
            kk = colVisu(k - 1)
            b(I + 1, k) = BD(j, kk)
          Next k
          b(I + 1, k) = j + 1
        Next I
        Me.ListBox1.List = b
     End If
  Else
     UserForm_Initialize
  End If
End Sub

Je prends toute idée. J'avoue que la je sèche complètement...
Merci par avance. Bonne journée et bonne semaine.

Sébastien
 

Pièces jointes

  • GDV_2406.xlsm
    563 KB · Affichages: 6

ChTi160

XLDnaute Barbatruc
Bonjour Sebastien
Bonjour le Fil ,le Forum
Une autre version avec quelques avancées Lol
Question :
Pourquoi vouloir mettre (Visible) l'ensemble des Colonnes de la Feuille "Data" dans la "ListBox1" ?
autre remarque :
Pourquoi appeler un TextBox "ComboBoxRef" et non "TxtBRefGrpe" par exemple?
ou "ComboBoxTypeGr" et Non "TxtBTypeGr"

je continue !
jean marie
 

Pièces jointes

  • GDV_2806 -Chti160.xlsm
    441.9 KB · Affichages: 13
Dernière édition:

jsebt

XLDnaute Junior
Bonjour Jean Marie et le forum..

Donc pour te répondre:

- Toutes les colonnes n'ont pas besoin d'être visibles, mais si elles ne le sont pas, mes champs du mouvement sélectionné ne s'affichent pas tous et je ne peux donc pas les modifier. Bien au contraire, j'aurai bien aimé ne laisser que les informations importantes (Nom du groupe, Nombre caravanes, Aire attribuée, Date arrivée, Date départ, Acceptée, Illicite, Procédure, Toléré) . Mais je voudrais pouvoir modifier la totalité des champs dans "Mouvement sélectionné". (Peut être en utilisant un autre Userform de modification?)

- Pour les noms des champs, c'est juste que, tu as pu le voir puisque tu me suis depuis le début :), j'avance à tâtons, au début je pensais m'y prendre autrement, mais la réalité du terrain m'a détourné. Les différents noms me permettaient de savoir duquel je parlais. Mais tout est modifiable si besoin.

Tu peux faire ce que tu veux, modifier ce que tu veux. Si tu vois des incohérences (oui, j'imagine que tu en as vu pas mal :)), n'hésite pas.
Merci encore une fois pour ton aide et le temps que tu passes sur mon problème.
Bonne fin de journée.

Sébastien
 

jsebt

XLDnaute Junior
Yeah, j'ai réussi a faire mon formulaire imprimer, bouton imprimer. Zone d'impression auto :). Et à importer les données réelles pour voir ce que cela donnait. Ajouté 2 colonnes dans client à la demande de mon collègue. C'est parfait ! Mon collègue qui bosse sans depuis des années est ravi et moi aussi!

Après y aura plus qu'à exploiter les données, tableaux croisés dynamiques, diagramme, analyse! Un petit publipostage quand je serai motivé et j'aurai même la génération automatique du rapport. (voir peut être l'envoi direct si je suis motivé :))
Ca va être parfait :) Trop content, y a plus qu'a résoudre ce dernier problème et c'est parti !

(J'avoue que compte un peu sur toi, mais je vais essayer aussi :) Là j'essaye de comprendre ce que tu as fait et de le reproduire sur ma version "propre").
Vraiment je te remercie encore une fois pour ton aide si précieuse sur ce projet.
 

jsebt

XLDnaute Junior
Bonsoir Jean Marie et le forum...

Bon ben je continue de galérer avec ce décalage dans ma listbox et mes textbox.
J'ai bien réussi à reproduire ta modif, mais on dirait que cette ligne n'est plus prise en compte...
VB:
  colVisu = Array(1, 23, 4, 7, 8, 10, 11, 18, 20, 21, 14, 22, 24, 17, 15, 16, 6, 2, 13) '

Les colonnes affichées sont maintenant 1, 2, 3, 4, 5, etc...

Vraiment plus d'idée... Je me demande si je ne devrais pas effacer toute la partie listbox et essayer autrement...
Tout conseil est bienvenu. :) (Sauf si Jean Marie me refait un tour de magie? :))
Merci en tout cas.

Sébastien
 

jsebt

XLDnaute Junior
Bonjour Jean Marie,

Tu es juste... Génial :):)
Merci beaucoup! C'est encore mieux que dans mes rêves les plus fous :). J'avoue que je commençais à désespérer de finir un jour. Mais là je crois qu'on commence à avoir quelque chose qui ressemble a quelque chose.
Bon je ne comprend pas tout ce que tu as fait, mais je vais me pencher dessus.
Merci encore une fois pour ton aide.

Sébastien
 

jsebt

XLDnaute Junior
Bonsoir Jean Marie,

Ben j'ai crié victoire trop vite...
J'ai essayé d'adapter, mais je crois que j'ai raté un quelque chose quelque part.
Tes commentaires dans le fichier m'ont permis de comprendre plein de choses que je faisais sans vraiment comprendre. Merci vraiment pour çà.
Mais... Je ne suis pas encore assez autonome...

Je mets mon fichier en pj. J'ai modifié les colonnes après en avoir discuté avec mon collègue sur les infos qu'il souhaitait avoir. Du coup la version finale des infos dont on a besoin est dans le fichier joint:

- J'ai supprimé plusieurs checkbox, il n'en reste qu'une pour "procédure", les checkbox supprimés passent dans une textbox supplémentaire
- Les 2 colonnes vides sont nécessaires pour le fonctionnement des plannings automatisé. Une des fonctions essentielles. (Et je n'ose vraiment pas toucher à ce code)
- J'ai changé les colonnes de tri:(4, 20, 7, 14, 21)
- Adapté le nombre de colonnes
- Idem dans la base clients, j'ai changé les champs. Mais le nombre de colonnes reste identique, cela ne devrait pas avoir d'incidence.

J'obtiens une erreur de compilation: Type défini par l'utilisateur non défini sur : "Public lvIt As MSComctlLib.ListItem"
Je pense que j'ai du faire une erreur dans les colonnes en adaptant.

Je suis désolé de te solliciter encore... Et je te remercie encore une fois par avance pour ton aide.
Bonne soirée

Sébastien
 

Pièces jointes

  • GDV_1207.xlsm
    454 KB · Affichages: 12

Discussions similaires

Réponses
1
Affichages
379
Compte Supprimé 979
C

Statistiques des forums

Discussions
311 730
Messages
2 081 978
Membres
101 854
dernier inscrit
micmag26