XL 2019 Créer autant de textbox qu'il y a de lignes selectionnées dans une listview

SPGoder

XLDnaute Occasionnel
Bonjour
Je souhaite sur une autre page du multipage, récupérer dans autant de textbox, la première colonnes des ligne sélectionnées dans le listview présent sur la premiere page du multipage
Et si possible que ces textbox soient alignés les uns sous les autres
Le but est d'effectuer des calculs avec des données sur une autre feuille en fonction du contenu récupérer dans les textbox
Je joins le fichier avec les données et le usf chargeant le listview. ensuite, je ne sais absolument pas comment faire.
Merci de votre aide
 

Pièces jointes

  • Test listview.xlsm
    133 KB · Affichages: 33

job75

XLDnaute Barbatruc
Bonjour SPGoder,

Franchement si 100 lignes sont sélectionnées vous vous voyez créer 100 TextBoxes ???

Il est évident que ce n'est pas une bonne méthode : il est facile de mémoriser dans des variables les données des lignes sélectionnées.

A+
 

SPGoder

XLDnaute Occasionnel
Bonjour job75

Je comprends la problématique que ça va engendrer.
De récupérer les lignes sélectionner et de travailler avec, je sais faire, mais j'ai besoin de visualiser les résultats, et les données sélectionnées pour les calculs suivant certains critères avant validation.
Il serait donc préférable de récupérer ce que j'ai besoin et de les réintégrer dans une autre listview ou autre form qui serait dynamique et pas limiter en nombre (du moins, pas plus que la sélection faite dans le premier listview).
Merci de m'avoir aiguiller
 

patricktoulon

XLDnaute Barbatruc
bonjour @SPGoder
une listeview peut être triée par une colonne
parti de la!!!.....

tu rajoute une colonne dans ta listview
dans cette colonne l'ors de l'event déclenché par la sélection tu met dans cette colonne sur la ligne sélectionnée un "1" par exemple
ben tu trie cette colonne et tu n'a que tes lignes sélectionnées dans ta listview
te reste plus qu'a faire ton analyse ou calcul ou je ne sais quoi avec les item et sub item
pour peu!!!!!!! qu'au remplissage tu ai mis des keys du genre l'addresse de la cellule correspondante a tes item et sub item , ,l'acces sera encore plus facile
et voila pas besoin de truc supplémentaires dynamiques ou autre qui serait cauchemardesque a coder

c'est pas compliqué ;)

SI !!!!!! il s'agit simplement de modifier une/des cellule(s) dans une ligne de la listview il y a d'autre astuce avec un seul textbox
et il n'y a même pas besoins de trier

[edit]
PS:d’ailleurs c'est réalisable de la même manière avec une simple listbox
 

SPGoder

XLDnaute Occasionnel
Salut Patrick
Le but est de faire un décompte de charges locatives.
Je doit sélectionner les logement concerné dans un immeuble et suivant le type de facture, le partager en part égale, au pourcentage de surface habitable, ou encore par rapport à un relevé de compteur
Faire une listview sélectionnable et récupéré cette info pour effectuer les calculs je sais faire.
Mais c'est comment afficher le résultat sur une autre page par rapport au nombre de sélection effectuer (d’où ma demande initiale de créer automatiquement un textbox par sélection. puis suite à la remarque de job, me rendant compte de mauvaise idée de créer un un listview qui rependrait automatiquement les sélections du premier et le détail des calculs
Donc si je comprend bien, je fais apparaitre un 1 par exemple dans une colonne cachée et en faisant un tri sur le 1, ne s'affiche plus que les éléments sélectionnés
Du coup tout se passe sur le même listview
Je commence à voir comment je vais faire. je m'y attaque. merci
 

ChTi160

XLDnaute Barbatruc
Bonjour SPGoder
Bonjour le Fil ,le Forum
il faudrait que tu mettes dans ton Fichier un exemple de ce que tu as et de ce que tu veux.
Tu agis sur Trois ComboBox ou plus ?
Que dois afficher ta ListView(3) ?
qu'entends tu par:
Je doit sélectionner les logement concerné dans un immeuble et suivant le type de facture
Peux tu préciser Lol
Vidéo d'un fichier non Finalisé lol
jean marie
 

Pièces jointes

  • ListView gestion 1.gif
    ListView gestion 1.gif
    84.8 KB · Affichages: 15

SPGoder

XLDnaute Occasionnel
Bonjour chTi160
désolé de répondre si tard, mais beaucoup, de boulot
je joins un fichier avec une idée de ce que je veux.
J'ai réussi à faire ce que je voulais, en m’appuyant sur la remarque pertinente de Job, même si je n'aurais jamais 1000 logements dans un seul immeuble
Et en suivant la méthode, un peu détourné pour revenir sur ce que je voulais, de Patrick
Le fichier ne fais pas les calculs, je le ferai plus tard, dont le résultat viendra s'ajouter listview2

Pour l'explication de la répartition de charges, dans un autre usf (non présent dans ce fichier), j'enregistre une facture , qui sera à répartir sur les locataires en fonction d'un mode répartition choisi (le type de facture définira automatiquement le mode de répartition, exemple l'eau, basée sur relevé de compteur, l'électricité des couloirs communs, répartie suivant le tantième de surface habitable etc....). Il faut donc aussi choisir quels locataire sont concerné (par exemple, on ne va pas imputé au locataire du RDC les frais d’assesseur)
Mais je m'en occuperai plus tard

Mon problème maintenant réside dans les checkbox, qui disparaissent lorsque l'on change de page dans le multi page. Est ce un problème de rafraichissement de la listview?
 

Pièces jointes

  • Test listview.xlsm
    122.5 KB · Affichages: 12

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir @SPGoder , @job75 , @patricktoulon , @ChTi160 , le Forum,

Pas trop le temps en ce moment pour moi, mais j'ai regardé ton problème de ListView car ça me remémorait des heures de perdues acec cette fameuse option de pseudo "CheckBox" par item d'une ListView. C'est assez instable en tout cas sur les anciennes versions d'office (ici 2013) niveau affichage déjà.

En fait il ne faut pas confondre dans une ListView les "Selected Items" et les "Checked Items" car ce ne sont pas les mêmes !!!

Moi j'avais abandonné de montrer ces CheckBox de ListView car celà déstabilisait complètement mes utilisateurs...

@SPGoder, fais un essai en ajoutant un CommandButton sur ton Userform MultiPage 1 et tu lui adjoins ce code :

VB:
Private Sub CommandButton7_Click()
Dim LVlistItem As ListItem
   
    For Each LVlistItem In Me.ListView1.ListItems

        If LVlistItem.Checked = True Then
            MsgBox Me.ListView1.ListItems.Item(LVlistItem.Index).Text
            'Ici si on veut alimenter une ListBox par exemple
        End If
    Next

End Sub

Tu cliques dans la CheckBox de deux ou trois items.... (Sans même les selectionner avec la touche CTRL en MultiSelect)

Tu auras tes 2 ou 3 réponses en MsgBox... (A ce stade tu pourrais alors à mon avis les envoyer dans une ListBox du MultiPage 2 pour te simplifier la vie...)

Fais la même chose en ajoutant un CommandButton mais cette fois-ci sur le MultiPage 2... Tu auras une réponse erronée... Et ton bouton "Précédent" ne montrera plus les Checks... C'est que certainement le MSCOMCTL.OCX (celui qui contient l'activeX de ListView utilisable en VBA), ne comprend pas le Contrôle MultiPage en perdant la selection .... (ou vice versa)
Je crois me rappeler qu'il faudrait faire un Module de Class, ou bien la méthode à Patrick peut-être directement dans le USF, mais ça, je ne sais pas faire...

Bon courage
@+Thierry
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Salut Patrick,

En fait c'est pas tout à fait ça, je n'ai jamais aimé cette réaction des ListView avec le CheckBox à true, on peut faire deux types de sélections complètement asynchrones :
listview_checkbox.gif


Et en plus sur un Contrôle MultiPage....... il ne va pas s'ennuyer SPGoder ! :eek::cool::rolleyes:

Bien sûr la couleur du Text sur l'action du MultiSelect peut faire quelque chose de plus simple par une autre approche visuelle mais ensuite si il fait "suivant" puis "précédent" sur son MultiPage il n'aura de toute façon plus la selection. (ou alors faire un loop sur les couleurs *... pour les re-selectionner)

EDIT * si les couleurs restent avec la navigation MultiPage, pas essayé !

Bonne nuit
@+Thierry
 

patricktoulon

XLDnaute Barbatruc
re
bonsoir @_Thierry
c'est exactement ça

moi j'ai essayé comme ça vite fait ça fonctionne
tout ça dans l'event click

VB:
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
    With Item
        If .ForeColor = vbRed Then .ForeColor = vbBlack Else .ForeColor = vbRed
        For i = 1 To .ListSubItems.Count
        .ListSubItems(i).ForeColor = .ForeColor
         Next
    End With
End Sub
demo6.gif
 

SPGoder

XLDnaute Occasionnel
Bonjour tout le monde
Si j'ai bien compris, je me lance dans une galère.
Et oui, patrick c'est pour le visuel des checkboxs qui m'incitait à prendre cet item
Effectivement, en cherchant sur le net, beaucoup se plaigne des listview. c'est dommage que ce ne soit pas abouti, j'aimais bien.
Thierry, j'ai inséré ton bout de code, cela récupère bien les infos, mais ne réglera pas le problème de la perte de sélection avec un retour en arrière si on souhaite modifier la sélection
La solution proposé en dernier par patrick me plait bien aussi. Et la sélection reste
Cela fonctionne en récupérant les lignes qui sont de couleur rouge pour alimenter le 2 ieme listview
Du coup 2 questions.
Je voulais cacher la première colonne, donc la sélection n'est plus possible (y a t il une astuce?) peut être en inversant les 2 premières colonnes vu que j'en cache une)
Et la se serait le top, est ce que la sélection en bleu peut se faire sur toute la ligne (plus facile à voir)
Sur vos conseils d'hier , j'ai commencer à le refaire avec des listbox, mais comme c'est la première fois que je les utilise, il me faut du temps pour m'adapter à leur fonctionnement (même si ce n'est pas la solution finale que je choisis, celà ne fait pas de mal de connaitre)
 

patricktoulon

XLDnaute Barbatruc
c'est vrai que les listboxs serait beaucoup !!!!!!!!!!!!!!!!! plus simple et tu aurais aussi des cases a cocher
allez un exemple comme ca a l'arraché en 1 minute chrono ;)
ta liste est prise en A1:G20
quand tu sélectionne dans la liste en haut ca va dans la liste d'en bas

et en prime (kado') pour la liste d'en bas !!!!!!!!!!!!!
les items de la liste sont tous cochés
il te suffit de cliquer sur le checkbox d'une ligne pour la supprimer de la liste

si ça c'est pas simple hein !!????
 

Pièces jointes

  • listbox to listbox .xlsm
    15 KB · Affichages: 16

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260