Problème avec des ListView

  • Initiateur de la discussion Initiateur de la discussion Etienne2323
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Etienne2323

XLDnaute Impliqué
Bonjour à tous,
après une bonne recherche sur le forum, je viens vers vous avec mon problème. C'est la première fois que je travaille avec des ListView et je dois vous avouer que je n'arrive pas à créer de headers.

Voici donc ce que j'aimerais réaliser. 1) Je voudrais créer des column headers pour mes deux Listview en boutons. 2) Je souhaiterais qu'à chaque fois qu'une information est saisie dans les combobox ou dans les textbox du UserForm, que l'information s'affiche dans le ListView sous le header qui lui est attribuée 3) Rendre visible les lignes dans le Listview de façon à ce que cela aille l'air professionnel.

Si jamais vous vous sentez inspiré, je crois que j'aurai besoin d'aide pour le second ListView également.

En vous remerciant encore une fois pour votre aide !!

Bonne soirée

Étienne
 

Pièces jointes

Re : Problème avec des ListView

Bonsoir Etienne2323 🙂,
J'avoue que je ne comprends pas, la propriété ColumnHeaders ne renvoie rien dans l'aide...
Si tu veux renvoyer des données dans ta ListView, c'est les propriétés de ComboBox4 et 5, TextBox1 et 2 qu'il faut renvoyer...
Bref, si quelqu'un peux t'aider, tant mieux, mais j'ai l'impression que nous ne sommes pas sur la même longueur d'onde.
Bonne soirée 😎
 
Re : Problème avec des ListView

Re 🙂,
C'est quoi les ColumnHeaders (des entêtes je pense) ? Mais pourquoi n'y a-t'il rien dans l'aide ? Il n'y a rien non plus sur ListView... Merci d'aider à ma culture 🙄.
Bonne soirée 😎
 
Re : Problème avec des ListView

Re 🙂,
Merci Bruno, si je suis bien, c'est de la technologie .net appliquée à VBA.
Je comprends mieux l'absence d'aide. J'étudierai cela à tête reposée.
Bonne soirée 😎
 
Re : Problème avec des ListView

Bonjour JNP, Bruno, le fil,
merci pour cette tentative de coup de main. J'ai réussi à progresser un peu de mon côté mais je suis de nouveau bloqué. Je n'arrive pas à remplir la deuxième colonne de mon ListView, et donc, les colonnes subséquentes non plus.

J'ai lu un peu partout ceci : ListView1.ListItems(1).ListSubItems.Add , , mon texte"
Je suis d'accord. Par contre, j'arrive toujours à un message d'erreur 35600 qui me dit "Index out of bounds"

C'est ici que ça plante :

Code:
Private Sub ComboBox4_DropButtonClick()

If Me.ComboBox4.Value <> "" Then
    
    Me.ListView1.ListItems(1).ListSubItems.Clear
    Me.ListView1.ListItems(1).ListSubItems.Add , , ComboBox4.Value
     
End If

End Sub

1re question : J'aimerais savoir comment inscrire dans la 2e colonne de mon ListView l'information de mon Combobox4 des qu'elle est saisie par l'utilisateur.

2e question : J'aimerais savoir comment inscrire la valeur d'un textbox une fois que l'utilisateur a inscrit la valeur dans le textbox et qu'il sort du textbox pour aller à un autre combobox ?


Je vous joint une version un peu plus à jour de mon exemple en pièce jointe.

En vous remerciant une fois de plus !!

Cordialement

Étienne
 

Pièces jointes

Re : Problème avec des ListView

Bonsoir kjin, le forum,
parfait, je vais donc tenter d'être plus explicit.

Dans mon ListView1, je cherche à entrer sur 1 seule ligne toutes les informations qui sont saisies par l'utilisateur dans les combobox et les textbox situés au-dessus du ListView1 dans le UserForm. Donc, ce que je souhaiterais avoir : date (ligne 1, colonne 1), type de prêt(ligne 1, colonne 2), montant du prêt(ligne 1, colonne 3), nombre d'années de l'illustration (ligne 1, colonne 4) et revenu imposable approx. (ligne 1, colonne 5),

Je voudrais qu'à chaque fois que l'utilisateur saisi une donnée, qu'elle s'inscrive automatiquement dans le listview.

Dans le cas du 2e Listview, c'est lui qui devrait être le plus difficile à réaliser. Voici donc ce que je voudrais faire. Il y a deux situations possibles.
La 1re : l'utilisateur coche le OptionButton disant qu'il souhaite prendre 1 seul placement. Je voudrais donc que les informations s'incrivent automatiquement dans le listview sur une seule ligne en suivant les entêtes.
La 2e situation : dans le cas ou l'utilisateur souhaite faire une combinaison de placements, je voudrais que toutes les informations saisies par l'utilisateur se retrouvent sur la première ligne. Ensuite, lorsqu'il clique sur le commandbutton Placement Suivant, que toutes les informations des combobox reviennent à l'état initial et que l'utilisateur puisse faire le choix d'un autre placement qui lui viendrait se mettre à la suite dans le listview, donc sur la seconde ligne.
Et ainsi de suite pour les placements subséquents.

J'espère avoir été en mesure de clarifier la situation. En vous remerciant encore une fois de votre temps et de votre énergie !!

Cordialement,

Étienne

Edit : Bonsoir Bruno. C'est à la demande de la compagnie. C'est le type de visuel qu'ils souhaitent obtenir. Je ne suis donc que l'exécutant et je dois avouer que sur ce coup, je découvre mon ignorance Excel. Merci quand même pour la proposition.

À plus tard,

Étienne
 
Re : Problème avec des ListView

Bonjour

Pour pouvoir mettre au point les procédures pour remplir les listview il serait préférable d'avoir des données dans le fichier.
Ci dessous un exemple de procédure pour remplir une listview

ListView1.ListItems.Clear ' pour effacer les données
With Sheets("Items")
i = 1
For Each cel In Range("a2:a120")
If cel = OptionButton2.Caption Then
ListView1.ListItems.Add , , cel.Value
ListView1.ListItems(i).ListSubItems.Add , , cel.Offset(0, 1).Value
ListView1.ListItems(i).ListSubItems.Add , , cel.Offset(0, 2).Value
ListView1.ListItems(i).ListSubItems.Add , , cel.Offset(0, 3).Value
i = i + 1
End If
Next
End With

A adapter en fonction du contexte.

JP
 
Re : Problème avec des ListView

Re,

Comment se rempli ton taux d'intérêt de la ListeView1 ?

Sinon voici le fichier avec code modifié pour la première ListeView 😉

En fait il faut définir dans qu'elle colonne tu vas mettre la donnée après le "Add"

Code:
Me.ListView1.ListItems(1).ListSubItems.Add [B][COLOR=blue]1[/COLOR][/B], , ComboBox4.Value
Le 1 veut dire 2ème colonne comme cela commence à 0

En revanche tu dois impérativement remplir la colonne précédente pour pouvoir inscrire la suivante, sinon = erreur 🙄

A+
 

Pièces jointes

Re : Problème avec des ListView

Bonsoir

Bonsoir kjin, le forum,
parfait, je vais donc tenter d'être plus explicit.

Dans mon ListView1, je cherche à entrer sur 1 seule ligne toutes les informations qui sont saisies par l'utilisateur dans les combobox et les textbox situés au-dessus du ListView1 dans le UserForm. Donc, ce que je souhaiterais avoir : date (ligne 1, colonne 1), type de prêt(ligne 1, colonne 2), montant du prêt(ligne 1, colonne 3), nombre d'années de l'illustration (ligne 1, colonne 4) et revenu imposable approx. (ligne 1, colonne 5),

Je voudrais qu'à chaque fois que l'utilisateur saisi une donnée, qu'elle s'inscrive automatiquement dans le listview.

Pour effectuer cette opération, il faut remplir une ligne avec des valeurs comme " ".

ListView1.ListItems.Add , , " "
ListView1.ListItems(1).ListSubItems.Add , ," "
ListView1.ListItems(1).ListSubItems.Add , , " "
ListView1.ListItems(1).ListSubItems.Add , , " "

Ensuite quand on change la valeur d'un combobox on met à jour cette ligne.
avec le code suivant

ListView1.ListItems(1).Text = Combobox.value '"Date"
ListView1.listItems(1).listSubItems(1).Text = Combobox.value pour la deuxième colonne
"Type de prêt"
ListView1.listItems(1).listSubItems(2).Text = pour la troisième colonne

En utilisant cette technique l'utilisateur peut modifier son choix.
A tester

JP
 
Dernière édition:
Re : Problème avec des ListView

Bonsoir Bruno,
la colonne "Taux d'intérêt" sera un taux qui est dans l'onglet Paramètres. C'est le taux prime variable que nous utilisons pour décider du taux d'intérêt des prêts. Je devrai donc faire une petite macro pour adapter la situation. Mais en gros, il va chercher l'info dans l'onglet Paramètres. Merci pour le coup de main, c'est exactement ce qu'il me manquait. Avec ça, je devrais être bon pour poursuivre. Je vous vraiment reconnaissant du coup de main !! Je me lance pour la suite.

Encore une fois merci !

Bonne soirée !

Étienne

Edit : Merci JP pour l'explication. Je crois que je vais être en mesure d'adapter. C'est très apprécié ! C'est vraiment au niveau du ListSubItems(i) que je bloquais.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
300
Retour