Récupération données dans listview

Bonjour à tous,

Je reviens vers vous, car après multiples recherches, je ne trouve pas ce que je veux....

J'ai créé un userform de recherche multicritères 4 textbox et une listview affichant les résultats, et j'aimerai pourvoir récupérer ceux-ci, et les retranscrire dans une feuille "résultats et impression" (voir feuille), en sachant que si plusieurs résultats sont trouvés, il faudrait créer des feuilles pour chaque résultats avec la même structure, je souhaiterai que cette opération s'effectue en double-clic sur le (ou les) résultat(s) dans la listview, car un seul clic fait apparaitre la photo correspondante. De plus, il ne faut pas qu'il me demande d'enregistrer lors de la fermeture du fichier Excel, car ces feuilles ne sont que pour une utilisation spontanée (consultation et impression).

Dans mon userform, j'aimerai intégrer un Bouton "imprimer", qui me permettra d'imprimer le ou les résultats de la recherche avec le choix dans n'imprimer une ou plusieurs feuilles en fonction des résultats obtenus.

Merci d'avance pour votre aide

Pas de réponse, si vous avez besoin de plus de renseignements n'hésitez pas....

Bonjour Alienox

Désolé pour ce retard

Tu n'as pas de réponse

j'ai vraiment du mal avec ton fichier(pas simple et mon convertisseur qui me plante à tous bout de champ)

un petit coup de pouce

place ce code dans les codes de l'userform

Private Sub ListView1_DblClick()
Dim i%
With Sheets("Résultats et Impression")
  For i = 1 To Me.ListView1.ListItems.Count
    If Me.ListView1.ListItems.Count > 0 And Me.ListView1.ListItems(i) <> "" Then
     .Range("B18") = Me.ListView1.ListItems(i)
     .Range("B23") = Me.ListView1.ListItems(i).ListSubItems(1)
     .Range("B28") = Me.ListView1.ListItems(i).ListSubItems(2)
     .Range("B33") = Me.ListView1.ListItems(i).ListSubItems(3)
     .Range("B38") = Me.ListView1.ListItems(i).ListSubItems(4)
     .Range("B43") = Me.ListView1.ListItems(i).ListSubItems(5)
     .Range("E28") = Me.ListView1.ListItems(i).ListSubItems(6)
     .Range("B48") = Me.ListView1.ListItems(i).ListSubItems(7)
     .Range("B53") = Me.ListView1.ListItems(i).ListSubItems(8)
     Me.Hide
     .PrintPreview
     Me.Show
    End If
  Next i
End With
End Sub

Salut Bob,

Retard de quoi??? tu fais ce que tu peux, c'est normal, chacun à sa vie....

Et non je n'avais pas de réponse, alors soit le sujet n'intéresse pas , soit je m'explique mal ....

Mon fichier n'est pas simple pour quoi? c'est dans le sens "c'est dur ce que je demande" ou le code est trop compliqué (mal organisé)?

Je regarde ça et reviens vers toi.....

Merci encore

Merci Bob, ça fonctionne plutôt pas mal...

Par contre, lorsque je double-clique sur la listview, avec plusieurs résultats, il affichage autant de "mise en page" que de résultats, ce que je recherchai c'est évident, mais cela devient vite trop conséquent, je n'y avais pas pensé.

Y-aurait-il un autre moyen comme par exemple, sur le userform, qu'il m'affiche, soit une liste, soit des onglets ou autres (msgbox par ex), afin que je puisse avoir le choix de l'impression?

De plus, il faudrait qu'il vide automatiquement la feuille "résultats et impression" car celle-ci ne sert que de mise en page, et cela m'éviterai de supprimer, avant fermeture du classeur, toutes les cellules remplient.

Je me suis rendu compte qu'il ne retranscrit pas toutes les lignes (pour un critère recherché) de la listview, mais seulement la première de chaque résultats (ligne en gras).

Dans les "mises en page", la photo n'apparait pas

J'ai listé toutes ces remarques afin que je m'en souvienne et que je recherche par moi-même une solution, mais une aide est toujours la bienvenue.

Merci encore, BOB, de l'aide que tu m'apportes

Salut la communauté,

Je viens de régler un point sur le quel je bloquai .

Je suis arrivé à vider mes cellules de ma feuille "résultats" avec ce code :

' supprime le contenu des cellules de la feuille "Résultats et Impression" avant Enregistrement du classeur
Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Worksheets("Résultats et Impression").Range("E5:G6,E8:G9,E11:G11,B13:D14,A17:C29,D17:G29,A31:C43,D31:G43,A45:G48").Select
    Worksheets("Résultats et Impression").Range("A45").Activate
    Selection.ClearContents
End Sub

Ps: les cellules de ce code, ne correspondent pas à celles du fichier ci-dessous car j'ai revu ma mise en page, donc ce code ne se trouve pas dans le nouveau fichier en dessous.

Et pour les autres points, Et bien......à suivre, mais c'est pas simple

A+

Bonjour à tous,

Je vous joins le nouveau fichier avec les modifs apportées par BOB, merci encore à toi....

Mais j'ai toujours besoin d'aide car je bloque sur ce que j'ai demandé plus haut...

Bonne journée

Bonjour le forum et BOB,

Je viens de trouver cela sur le net,

Me.ListView1.CheckBoxes = True ' Afficher des cases à cocher dans la colonne de gauche.

Ce qui permet d'afficher des cases à cocher dans la listview.

Dans la proposition de BOB, avec son code, comme je l'ai demandé, un double clique sur la listview, me génère des printviews, pour chaque résultats trouvés. Ce qui devient très ingérable lorsque ma recherche trouve plusieurs critères.

Par contre là je suis perdu, car j'aimerai adapter le code ci-dessus, afin que j'ai le choix sur telle ou telle fiches recherchées, donc en gros cela serai de supprimer le double clique de la listview et de cocher la case ou les cases, associées, que je veux imprimer.

A savoir que dans la listview, il faudrait qu'une seule case à cocher apparaisse par item recherché.

En espérant mettre fait comprendre

A bientôt

Voici le fichier modifier

Rechercher des sujets similaires à "recuperation donnees listview"