Value combo ou liste à plusieurs colonnes

  • Initiateur de la discussion Initiateur de la discussion Fanfan68
  • 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 !

F

Fanfan68

Guest
Bonjour à tous,

Pour les comboBoxs ou listBoxs, je sais qu'il y a dans les propriétés, une propriété 'BoundColumn' qui sert à définir quelle sera la colonne qui récupèrera la value dans le cas ou il y aurait plusieurs colonnes.

Ma question est la suivante :

Est-il possible de récupéré, sur click, pour les combo ou list à plusieurs colonnes, la valeur de chaque colonne, ex. en A1 la valeur de la première colonne, en A2, celle de la seconde, en A3, la troisième....

Merci
 
re

un peu plus d'explication :

La valeur d'une listbox en multicolonne est donnée par la propriété list.

ainsi la valeur à l'intersection de la 2ème ligne et de la 3ème colonne se trouve en faisant : listbox1.list(1,2) attention les items d'une listbox sont indexés en partant de 0 (premier item =0, deuxième =1, etc... d'ou le décalage)

l'item (la ligne) sélectionné dans une listbox est trouvé par listindex, ainsi ce code te donnera le numéro de l'index :

Private Sub ListBox1_Click()
MsgBox ListBox1.ListIndex
End Sub

Là aussi, attention au décalage de 1

le nombre de colonne d'une listbox est donnée par columncount.

il ne te reste plus ensuite qu'a faire une boucle :

for i=0 to .columncount-1 = pour i allant de 1 au total de colonne (-1 pour tenir compte du décalage de 1)

cells(i+1,1) dans la cellule a1=la valeur à l'intersection du numéro de ligne(listindex) et de la colonne (i)

voilà

j'espère avoir été clair.

salut

Message édité par: hervé, à: 14/11/2005 17:31
 
Trés bien, super Hervé, ça fonctionne.

J'ai modifié un peu le code de la manière suivante :

Cells(1, i + 1)

Afin de remplir mon tableau de gauche à droite et non de haut en bas et ainsi, respecter la logique de ma listBox.

Maintenant, il y a un souci, en effet, si je re-click sur une ligne de ma list, les données précedement envoyées dans 'Cells(1, i + 1)' vont être écrasées suite à ce nouveau click.

Comment faire pour conserver les données et mettre les suivantes sur la ligne de dessous et ainsi de suite

Merci
 
bonjour fanfan

Il suffit de rechercher la premiere cellule vide de la colonne A :


Private Sub ListBox1_Click()
Dim i As Byte
Dim derligne As Integer
derligne = Range('a65536').End(xlUp).Row + 1
With ListBox1
       
For i = 0 To .ColumnCount - 1
                Cells(derligne, i + 1) = .List(.ListIndex, i)
       
Next i
End With
End Sub


salut
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Résolu(e)
Microsoft 365 DateDif()
Réponses
5
Affichages
388
Retour