OVH Cloud OVH Cloud

VBA : Pb d'affichage avec un combobox multicolonne

10 réponses
Avatar
Herve78
Bonjour
J'ai un combobox multicolonnes (5) qui affiche bien tous les éléments. Mais
quand je sélectionne une ligne, il n'y a que l'élément de la 1ere colonne qui
s'affiche. Or je voudrais afficher dans le combobox tous les éléments des 5
colonnes. J'ai modifié la propriété TextColumn mais ça marche pas.

Merci d'avance pour vos idées

10 réponses

Avatar
michel
Bonjour
Utilise une seule colonne avec tes 5 infos concatenees
@plus
Michel
"Herve78" a écrit dans le message de
news:
Bonjour
J'ai un combobox multicolonnes (5) qui affiche bien tous les éléments.
Mais
quand je sélectionne une ligne, il n'y a que l'élément de la 1ere colonne
qui
s'affiche. Or je voudrais afficher dans le combobox tous les éléments des
5
colonnes. J'ai modifié la propriété TextColumn mais ça marche pas.

Merci d'avance pour vos idées


Avatar
michdenis
Bonjour Herve78,

Pour afficher toute la ligne sélectionnée du combobox (5 colonnes) dans la première ligne vide de la feuille :

'--------------------------
Private Sub ComboBox1_Change()

With Me.ComboBox1
DerLig = Range("A65536").End(xlUp).Row + 1
For a = 0 To 4 ' 5 colonnes
Cells(DerLig, a + 1) = .List(.ListIndex, a)
Next
End With

End Sub
'--------------------------


Salutations!



"Herve78" a écrit dans le message de news:
Bonjour
J'ai un combobox multicolonnes (5) qui affiche bien tous les éléments. Mais
quand je sélectionne une ligne, il n'y a que l'élément de la 1ere colonne qui
s'affiche. Or je voudrais afficher dans le combobox tous les éléments des 5
colonnes. J'ai modifié la propriété TextColumn mais ça marche pas.

Merci d'avance pour vos idées
Avatar
Herve78
Merci à vous 2 pour votre réponse, mais j'ai utilisé un multicolonne pour
aligner les infos "proprement" dans le combobox. Je contourne la difficulté
en concaténant les infos avec des espaces entre chaque "colonne". Mais avec
une police proportionnelle, c'est pas génial (les "colonnes" ne sont pas
alignées).

Désolé MichDenis, mais je ne souhaite pas afficher les 5 colonnes dans une
feuille mais dans le combobx. Pour être plus précis, un click sur le combo
affiche les infos des 5 colonnes. Un click pour sélectionner une ligne
(ListIndex) n'affiche que l'élément de la 1ere colonne. J'ai essayé de faire
varier TextColumn, mais je n'ai toujours qu'un seul élément au lieu des 5.

Merci d'avance.


Bonjour Herve78,

Pour afficher toute la ligne sélectionnée du combobox (5 colonnes) dans la première ligne vide de la feuille :

'--------------------------
Private Sub ComboBox1_Change()

With Me.ComboBox1
DerLig = Range("A65536").End(xlUp).Row + 1
For a = 0 To 4 ' 5 colonnes
Cells(DerLig, a + 1) = .List(.ListIndex, a)
Next
End With

End Sub
'--------------------------


Salutations!



"Herve78" a écrit dans le message de news:
Bonjour
J'ai un combobox multicolonnes (5) qui affiche bien tous les éléments. Mais
quand je sélectionne une ligne, il n'y a que l'élément de la 1ere colonne qui
s'affiche. Or je voudrais afficher dans le combobox tous les éléments des 5
colonnes. J'ai modifié la propriété TextColumn mais ça marche pas.

Merci d'avance pour vos idées





Avatar
michdenis
Bonjour Hervé78,

Pourquoi concaténer tes 5 colonnes en UNE pour les affichier dans le combobox.

Un contrôle "combobox" possède 2 propriétés :

ColumnCount : pour déterminer le nombre de colonne

ColumnWidths : détermine la largeur de chacune des colonnes


Pis, il y a ceux qui tiennent à se retrouver dans la mouise, ils optent pour ton approche !


Salutations!



"Herve78" a écrit dans le message de news:
Merci à vous 2 pour votre réponse, mais j'ai utilisé un multicolonne pour
aligner les infos "proprement" dans le combobox. Je contourne la difficulté
en concaténant les infos avec des espaces entre chaque "colonne". Mais avec
une police proportionnelle, c'est pas génial (les "colonnes" ne sont pas
alignées).

Désolé MichDenis, mais je ne souhaite pas afficher les 5 colonnes dans une
feuille mais dans le combobx. Pour être plus précis, un click sur le combo
affiche les infos des 5 colonnes. Un click pour sélectionner une ligne
(ListIndex) n'affiche que l'élément de la 1ere colonne. J'ai essayé de faire
varier TextColumn, mais je n'ai toujours qu'un seul élément au lieu des 5.

Merci d'avance.


Bonjour Herve78,

Pour afficher toute la ligne sélectionnée du combobox (5 colonnes) dans la première ligne vide de la feuille :

'--------------------------
Private Sub ComboBox1_Change()

With Me.ComboBox1
DerLig = Range("A65536").End(xlUp).Row + 1
For a = 0 To 4 ' 5 colonnes
Cells(DerLig, a + 1) = .List(.ListIndex, a)
Next
End With

End Sub
'--------------------------


Salutations!



"Herve78" a écrit dans le message de news:

Bonjour
J'ai un combobox multicolonnes (5) qui affiche bien tous les éléments. Mais
quand je sélectionne une ligne, il n'y a que l'élément de la 1ere colonne qui
s'affiche. Or je voudrais afficher dans le combobox tous les éléments des 5
colonnes. J'ai modifié la propriété TextColumn mais ça marche pas.

Merci d'avance pour vos idées





Avatar
Herve78
SI tu as 5 minutes, dans un userform, place un combobox à 2 colonnes, remplie
le avec des infos sur 3 lignes 2 colonnes. Sélectionne une 1 ligne et tu
verras que tu n'a qu'un seul élément de sélectionné. C'est la propriété
TextColumn qui gère ça.

Je vais finir par croire que mon souhait n'est pas réalisable.

Et si je concatène sur une colonne, c'est bien pour contourner mon pb, car
esthétiquement c'est pas une réussite.



Bonjour Hervé78,

Pourquoi concaténer tes 5 colonnes en UNE pour les affichier dans le combobox.

Un contrôle "combobox" possède 2 propriétés :

ColumnCount : pour déterminer le nombre de colonne

ColumnWidths : détermine la largeur de chacune des colonnes


Pis, il y a ceux qui tiennent à se retrouver dans la mouise, ils optent pour ton approche !


Salutations!



"Herve78" a écrit dans le message de news:
Merci à vous 2 pour votre réponse, mais j'ai utilisé un multicolonne pour
aligner les infos "proprement" dans le combobox. Je contourne la difficulté
en concaténant les infos avec des espaces entre chaque "colonne". Mais avec
une police proportionnelle, c'est pas génial (les "colonnes" ne sont pas
alignées).

Désolé MichDenis, mais je ne souhaite pas afficher les 5 colonnes dans une
feuille mais dans le combobx. Pour être plus précis, un click sur le combo
affiche les infos des 5 colonnes. Un click pour sélectionner une ligne
(ListIndex) n'affiche que l'élément de la 1ere colonne. J'ai essayé de faire
varier TextColumn, mais je n'ai toujours qu'un seul élément au lieu des 5.

Merci d'avance.


Bonjour Herve78,

Pour afficher toute la ligne sélectionnée du combobox (5 colonnes) dans la première ligne vide de la feuille :

'--------------------------
Private Sub ComboBox1_Change()

With Me.ComboBox1
DerLig = Range("A65536").End(xlUp).Row + 1
For a = 0 To 4 ' 5 colonnes
Cells(DerLig, a + 1) = .List(.ListIndex, a)
Next
End With

End Sub
'--------------------------


Salutations!



"Herve78" a écrit dans le message de news:

Bonjour
J'ai un combobox multicolonnes (5) qui affiche bien tous les éléments. Mais
quand je sélectionne une ligne, il n'y a que l'élément de la 1ere colonne qui
s'affiche. Or je voudrais afficher dans le combobox tous les éléments des 5
colonnes. J'ai modifié la propriété TextColumn mais ça marche pas.

Merci d'avance pour vos idées










Avatar
michdenis
Bonjour Hervé78,

Quand tu sélectionnes une ligne dans un combobox, (tous les éléments de cette ligne sont visibles dans la liste déroulante
nonobstant le nombre de colonne de cette liste) mais, seulement l'élément de la première colonne de la ligne sélectionnée s'affiche
dans le combobox après sélection. Ceci, c'est le comportement normal d'un combobox.

La procédure que je te proposais plutôt sur ce fil te permet de récupérer tous les éléments des diverses colonnes de la ligne
sélectionnée. Ces éléments tu peux les regrouper dans une variable ou directement dans ta feuille de calcul.

Pour obtenir l'effet que tu recherches, utilises ceci en prenant soin d'effectuer les petites retouches propre à ton application :

'Déclaration de la variable "C" dans le haut de la feuille.
Dim C As String
'-------------------------
Private Sub ComboBox1_Change()

If C = "" Then
With Me.ComboBox1
For a = 0 To 4 ' 5 colonnes
C = C & .List(.ListIndex, a) & ", "
Next
End With
If C <> "" Then
C = Left(C, Len(C) - 2)
Me.ComboBox1.Text = C
End If
End If

End Sub
'-------------------------
Private Sub ComboBox1_Click()
C = ""
End Sub
'-------------------------


Salutations!






"Herve78" a écrit dans le message de news:
SI tu as 5 minutes, dans un userform, place un combobox à 2 colonnes, remplie
le avec des infos sur 3 lignes 2 colonnes. Sélectionne une 1 ligne et tu
verras que tu n'a qu'un seul élément de sélectionné. C'est la propriété
TextColumn qui gère ça.

Je vais finir par croire que mon souhait n'est pas réalisable.

Et si je concatène sur une colonne, c'est bien pour contourner mon pb, car
esthétiquement c'est pas une réussite.



Bonjour Hervé78,

Pourquoi concaténer tes 5 colonnes en UNE pour les affichier dans le combobox.

Un contrôle "combobox" possède 2 propriétés :

ColumnCount : pour déterminer le nombre de colonne

ColumnWidths : détermine la largeur de chacune des colonnes


Pis, il y a ceux qui tiennent à se retrouver dans la mouise, ils optent pour ton approche !


Salutations!



"Herve78" a écrit dans le message de news:

Merci à vous 2 pour votre réponse, mais j'ai utilisé un multicolonne pour
aligner les infos "proprement" dans le combobox. Je contourne la difficulté
en concaténant les infos avec des espaces entre chaque "colonne". Mais avec
une police proportionnelle, c'est pas génial (les "colonnes" ne sont pas
alignées).

Désolé MichDenis, mais je ne souhaite pas afficher les 5 colonnes dans une
feuille mais dans le combobx. Pour être plus précis, un click sur le combo
affiche les infos des 5 colonnes. Un click pour sélectionner une ligne
(ListIndex) n'affiche que l'élément de la 1ere colonne. J'ai essayé de faire
varier TextColumn, mais je n'ai toujours qu'un seul élément au lieu des 5.

Merci d'avance.


Bonjour Herve78,

Pour afficher toute la ligne sélectionnée du combobox (5 colonnes) dans la première ligne vide de la feuille :

'--------------------------
Private Sub ComboBox1_Change()

With Me.ComboBox1
DerLig = Range("A65536").End(xlUp).Row + 1
For a = 0 To 4 ' 5 colonnes
Cells(DerLig, a + 1) = .List(.ListIndex, a)
Next
End With

End Sub
'--------------------------


Salutations!



"Herve78" a écrit dans le message de news:

Bonjour
J'ai un combobox multicolonnes (5) qui affiche bien tous les éléments. Mais
quand je sélectionne une ligne, il n'y a que l'élément de la 1ere colonne qui
s'affiche. Or je voudrais afficher dans le combobox tous les éléments des 5
colonnes. J'ai modifié la propriété TextColumn mais ça marche pas.

Merci d'avance pour vos idées










Avatar
Herve78
Merci pour ta réponse. Je crois effectivement que j'attendais trop du
combobox.

A+


Bonjour Hervé78,

Quand tu sélectionnes une ligne dans un combobox, (tous les éléments de cette ligne sont visibles dans la liste déroulante
nonobstant le nombre de colonne de cette liste) mais, seulement l'élément de la première colonne de la ligne sélectionnée s'affiche
dans le combobox après sélection. Ceci, c'est le comportement normal d'un combobox.

La procédure que je te proposais plutôt sur ce fil te permet de récupérer tous les éléments des diverses colonnes de la ligne
sélectionnée. Ces éléments tu peux les regrouper dans une variable ou directement dans ta feuille de calcul.

Pour obtenir l'effet que tu recherches, utilises ceci en prenant soin d'effectuer les petites retouches propre à ton application :

'Déclaration de la variable "C" dans le haut de la feuille.
Dim C As String
'-------------------------
Private Sub ComboBox1_Change()

If C = "" Then
With Me.ComboBox1
For a = 0 To 4 ' 5 colonnes
C = C & .List(.ListIndex, a) & ", "
Next
End With
If C <> "" Then
C = Left(C, Len(C) - 2)
Me.ComboBox1.Text = C
End If
End If

End Sub
'-------------------------
Private Sub ComboBox1_Click()
C = ""
End Sub
'-------------------------


Salutations!






"Herve78" a écrit dans le message de news:
SI tu as 5 minutes, dans un userform, place un combobox à 2 colonnes, remplie
le avec des infos sur 3 lignes 2 colonnes. Sélectionne une 1 ligne et tu
verras que tu n'a qu'un seul élément de sélectionné. C'est la propriété
TextColumn qui gère ça.

Je vais finir par croire que mon souhait n'est pas réalisable.

Et si je concatène sur une colonne, c'est bien pour contourner mon pb, car
esthétiquement c'est pas une réussite.



Bonjour Hervé78,

Pourquoi concaténer tes 5 colonnes en UNE pour les affichier dans le combobox.

Un contrôle "combobox" possède 2 propriétés :

ColumnCount : pour déterminer le nombre de colonne

ColumnWidths : détermine la largeur de chacune des colonnes


Pis, il y a ceux qui tiennent à se retrouver dans la mouise, ils optent pour ton approche !


Salutations!



"Herve78" a écrit dans le message de news:

Merci à vous 2 pour votre réponse, mais j'ai utilisé un multicolonne pour
aligner les infos "proprement" dans le combobox. Je contourne la difficulté
en concaténant les infos avec des espaces entre chaque "colonne". Mais avec
une police proportionnelle, c'est pas génial (les "colonnes" ne sont pas
alignées).

Désolé MichDenis, mais je ne souhaite pas afficher les 5 colonnes dans une
feuille mais dans le combobx. Pour être plus précis, un click sur le combo
affiche les infos des 5 colonnes. Un click pour sélectionner une ligne
(ListIndex) n'affiche que l'élément de la 1ere colonne. J'ai essayé de faire
varier TextColumn, mais je n'ai toujours qu'un seul élément au lieu des 5.

Merci d'avance.


Bonjour Herve78,

Pour afficher toute la ligne sélectionnée du combobox (5 colonnes) dans la première ligne vide de la feuille :

'--------------------------
Private Sub ComboBox1_Change()

With Me.ComboBox1
DerLig = Range("A65536").End(xlUp).Row + 1
For a = 0 To 4 ' 5 colonnes
Cells(DerLig, a + 1) = .List(.ListIndex, a)
Next
End With

End Sub
'--------------------------


Salutations!



"Herve78" a écrit dans le message de news:

Bonjour
J'ai un combobox multicolonnes (5) qui affiche bien tous les éléments. Mais
quand je sélectionne une ligne, il n'y a que l'élément de la 1ere colonne qui
s'affiche. Or je voudrais afficher dans le combobox tous les éléments des 5
colonnes. J'ai modifié la propriété TextColumn mais ça marche pas.

Merci d'avance pour vos idées















Avatar
michdenis
As-tu au moins testé ma proposition ??????



"Herve78" a écrit dans le message de news:
Merci pour ta réponse. Je crois effectivement que j'attendais trop du
combobox.

A+


Bonjour Hervé78,

Quand tu sélectionnes une ligne dans un combobox, (tous les éléments de cette ligne sont visibles dans la liste déroulante
nonobstant le nombre de colonne de cette liste) mais, seulement l'élément de la première colonne de la ligne sélectionnée
s'affiche
dans le combobox après sélection. Ceci, c'est le comportement normal d'un combobox.

La procédure que je te proposais plutôt sur ce fil te permet de récupérer tous les éléments des diverses colonnes de la ligne
sélectionnée. Ces éléments tu peux les regrouper dans une variable ou directement dans ta feuille de calcul.

Pour obtenir l'effet que tu recherches, utilises ceci en prenant soin d'effectuer les petites retouches propre à ton application :

'Déclaration de la variable "C" dans le haut de la feuille.
Dim C As String
'-------------------------
Private Sub ComboBox1_Change()

If C = "" Then
With Me.ComboBox1
For a = 0 To 4 ' 5 colonnes
C = C & .List(.ListIndex, a) & ", "
Next
End With
If C <> "" Then
C = Left(C, Len(C) - 2)
Me.ComboBox1.Text = C
End If
End If

End Sub
'-------------------------
Private Sub ComboBox1_Click()
C = ""
End Sub
'-------------------------


Salutations!






"Herve78" a écrit dans le message de news:

SI tu as 5 minutes, dans un userform, place un combobox à 2 colonnes, remplie
le avec des infos sur 3 lignes 2 colonnes. Sélectionne une 1 ligne et tu
verras que tu n'a qu'un seul élément de sélectionné. C'est la propriété
TextColumn qui gère ça.

Je vais finir par croire que mon souhait n'est pas réalisable.

Et si je concatène sur une colonne, c'est bien pour contourner mon pb, car
esthétiquement c'est pas une réussite.



Bonjour Hervé78,

Pourquoi concaténer tes 5 colonnes en UNE pour les affichier dans le combobox.

Un contrôle "combobox" possède 2 propriétés :

ColumnCount : pour déterminer le nombre de colonne

ColumnWidths : détermine la largeur de chacune des colonnes


Pis, il y a ceux qui tiennent à se retrouver dans la mouise, ils optent pour ton approche !


Salutations!



"Herve78" a écrit dans le message de news:

Merci à vous 2 pour votre réponse, mais j'ai utilisé un multicolonne pour
aligner les infos "proprement" dans le combobox. Je contourne la difficulté
en concaténant les infos avec des espaces entre chaque "colonne". Mais avec
une police proportionnelle, c'est pas génial (les "colonnes" ne sont pas
alignées).

Désolé MichDenis, mais je ne souhaite pas afficher les 5 colonnes dans une
feuille mais dans le combobx. Pour être plus précis, un click sur le combo
affiche les infos des 5 colonnes. Un click pour sélectionner une ligne
(ListIndex) n'affiche que l'élément de la 1ere colonne. J'ai essayé de faire
varier TextColumn, mais je n'ai toujours qu'un seul élément au lieu des 5.

Merci d'avance.


Bonjour Herve78,

Pour afficher toute la ligne sélectionnée du combobox (5 colonnes) dans la première ligne vide de la feuille :

'--------------------------
Private Sub ComboBox1_Change()

With Me.ComboBox1
DerLig = Range("A65536").End(xlUp).Row + 1
For a = 0 To 4 ' 5 colonnes
Cells(DerLig, a + 1) = .List(.ListIndex, a)
Next
End With

End Sub
'--------------------------


Salutations!



"Herve78" a écrit dans le message de news:

Bonjour
J'ai un combobox multicolonnes (5) qui affiche bien tous les éléments. Mais
quand je sélectionne une ligne, il n'y a que l'élément de la 1ere colonne qui
s'affiche. Or je voudrais afficher dans le combobox tous les éléments des 5
colonnes. J'ai modifié la propriété TextColumn mais ça marche pas.

Merci d'avance pour vos idées















Avatar
Herve78
J'ai testé, mais ça plante, car dans le combo "déplié" on a (2 colonnes
alignées) :
Elt1 Elt2
Elt3 Elt4
Elt5 Elt6

Or la routine cherche à faire afficher par le combo un résultat concaténé.


As-tu au moins testé ma proposition ??????



"Herve78" a écrit dans le message de news:
Merci pour ta réponse. Je crois effectivement que j'attendais trop du
combobox.

A+


Bonjour Hervé78,

Quand tu sélectionnes une ligne dans un combobox, (tous les éléments de cette ligne sont visibles dans la liste déroulante
nonobstant le nombre de colonne de cette liste) mais, seulement l'élément de la première colonne de la ligne sélectionnée
s'affiche
dans le combobox après sélection. Ceci, c'est le comportement normal d'un combobox.

La procédure que je te proposais plutôt sur ce fil te permet de récupérer tous les éléments des diverses colonnes de la ligne
sélectionnée. Ces éléments tu peux les regrouper dans une variable ou directement dans ta feuille de calcul.

Pour obtenir l'effet que tu recherches, utilises ceci en prenant soin d'effectuer les petites retouches propre à ton application :

'Déclaration de la variable "C" dans le haut de la feuille.
Dim C As String
'-------------------------
Private Sub ComboBox1_Change()

If C = "" Then
With Me.ComboBox1
For a = 0 To 4 ' 5 colonnes
C = C & .List(.ListIndex, a) & ", "
Next
End With
If C <> "" Then
C = Left(C, Len(C) - 2)
Me.ComboBox1.Text = C
End If
End If

End Sub
'-------------------------
Private Sub ComboBox1_Click()
C = ""
End Sub
'-------------------------


Salutations!






"Herve78" a écrit dans le message de news:

SI tu as 5 minutes, dans un userform, place un combobox à 2 colonnes, remplie
le avec des infos sur 3 lignes 2 colonnes. Sélectionne une 1 ligne et tu
verras que tu n'a qu'un seul élément de sélectionné. C'est la propriété
TextColumn qui gère ça.

Je vais finir par croire que mon souhait n'est pas réalisable.

Et si je concatène sur une colonne, c'est bien pour contourner mon pb, car
esthétiquement c'est pas une réussite.



Bonjour Hervé78,

Pourquoi concaténer tes 5 colonnes en UNE pour les affichier dans le combobox.

Un contrôle "combobox" possède 2 propriétés :

ColumnCount : pour déterminer le nombre de colonne

ColumnWidths : détermine la largeur de chacune des colonnes


Pis, il y a ceux qui tiennent à se retrouver dans la mouise, ils optent pour ton approche !


Salutations!



"Herve78" a écrit dans le message de news:

Merci à vous 2 pour votre réponse, mais j'ai utilisé un multicolonne pour
aligner les infos "proprement" dans le combobox. Je contourne la difficulté
en concaténant les infos avec des espaces entre chaque "colonne". Mais avec
une police proportionnelle, c'est pas génial (les "colonnes" ne sont pas
alignées).

Désolé MichDenis, mais je ne souhaite pas afficher les 5 colonnes dans une
feuille mais dans le combobx. Pour être plus précis, un click sur le combo
affiche les infos des 5 colonnes. Un click pour sélectionner une ligne
(ListIndex) n'affiche que l'élément de la 1ere colonne. J'ai essayé de faire
varier TextColumn, mais je n'ai toujours qu'un seul élément au lieu des 5.

Merci d'avance.


Bonjour Herve78,

Pour afficher toute la ligne sélectionnée du combobox (5 colonnes) dans la première ligne vide de la feuille :

'--------------------------
Private Sub ComboBox1_Change()

With Me.ComboBox1
DerLig = Range("A65536").End(xlUp).Row + 1
For a = 0 To 4 ' 5 colonnes
Cells(DerLig, a + 1) = .List(.ListIndex, a)
Next
End With

End Sub
'--------------------------


Salutations!



"Herve78" a écrit dans le message de news:

Bonjour
J'ai un combobox multicolonnes (5) qui affiche bien tous les éléments. Mais
quand je sélectionne une ligne, il n'y a que l'élément de la 1ere colonne qui
s'affiche. Or je voudrais afficher dans le combobox tous les éléments des 5
colonnes. J'ai modifié la propriété TextColumn mais ça marche pas.

Merci d'avance pour vos idées




















Avatar
michdenis
Écoute, il faudrait au moins que tu respectes les consignes de l'énoncé de ton problème. Dans la présentation du premier message de
ce fil, tu fais était de 5 colonnes. Ainsi en est-il de la procédure. Si tu veux modifier le nombre de colonnes, tu n'as qu'à
modifier cette ligne de code dans la procédure :

elle était écrite pour 5 colonnes ,
For a = 0 To 4 ' 5 colonnes

Tu remplaces par :
For a = 0 To 1 ' 2colonnes


Salutations!





"Herve78" a écrit dans le message de news:
J'ai testé, mais ça plante, car dans le combo "déplié" on a (2 colonnes
alignées) :
Elt1 Elt2
Elt3 Elt4
Elt5 Elt6

Or la routine cherche à faire afficher par le combo un résultat concaténé.


As-tu au moins testé ma proposition ??????



"Herve78" a écrit dans le message de news:

Merci pour ta réponse. Je crois effectivement que j'attendais trop du
combobox.

A+


Bonjour Hervé78,

Quand tu sélectionnes une ligne dans un combobox, (tous les éléments de cette ligne sont visibles dans la liste déroulante
nonobstant le nombre de colonne de cette liste) mais, seulement l'élément de la première colonne de la ligne sélectionnée
s'affiche
dans le combobox après sélection. Ceci, c'est le comportement normal d'un combobox.

La procédure que je te proposais plutôt sur ce fil te permet de récupérer tous les éléments des diverses colonnes de la ligne
sélectionnée. Ces éléments tu peux les regrouper dans une variable ou directement dans ta feuille de calcul.

Pour obtenir l'effet que tu recherches, utilises ceci en prenant soin d'effectuer les petites retouches propre à ton application
:

'Déclaration de la variable "C" dans le haut de la feuille.
Dim C As String
'-------------------------
Private Sub ComboBox1_Change()

If C = "" Then
With Me.ComboBox1
For a = 0 To 4 ' 5 colonnes
C = C & .List(.ListIndex, a) & ", "
Next
End With
If C <> "" Then
C = Left(C, Len(C) - 2)
Me.ComboBox1.Text = C
End If
End If

End Sub
'-------------------------
Private Sub ComboBox1_Click()
C = ""
End Sub
'-------------------------


Salutations!






"Herve78" a écrit dans le message de news:

SI tu as 5 minutes, dans un userform, place un combobox à 2 colonnes, remplie
le avec des infos sur 3 lignes 2 colonnes. Sélectionne une 1 ligne et tu
verras que tu n'a qu'un seul élément de sélectionné. C'est la propriété
TextColumn qui gère ça.

Je vais finir par croire que mon souhait n'est pas réalisable.

Et si je concatène sur une colonne, c'est bien pour contourner mon pb, car
esthétiquement c'est pas une réussite.



Bonjour Hervé78,

Pourquoi concaténer tes 5 colonnes en UNE pour les affichier dans le combobox.

Un contrôle "combobox" possède 2 propriétés :

ColumnCount : pour déterminer le nombre de colonne

ColumnWidths : détermine la largeur de chacune des colonnes


Pis, il y a ceux qui tiennent à se retrouver dans la mouise, ils optent pour ton approche !


Salutations!



"Herve78" a écrit dans le message de news:

Merci à vous 2 pour votre réponse, mais j'ai utilisé un multicolonne pour
aligner les infos "proprement" dans le combobox. Je contourne la difficulté
en concaténant les infos avec des espaces entre chaque "colonne". Mais avec
une police proportionnelle, c'est pas génial (les "colonnes" ne sont pas
alignées).

Désolé MichDenis, mais je ne souhaite pas afficher les 5 colonnes dans une
feuille mais dans le combobx. Pour être plus précis, un click sur le combo
affiche les infos des 5 colonnes. Un click pour sélectionner une ligne
(ListIndex) n'affiche que l'élément de la 1ere colonne. J'ai essayé de faire
varier TextColumn, mais je n'ai toujours qu'un seul élément au lieu des 5.

Merci d'avance.


Bonjour Herve78,

Pour afficher toute la ligne sélectionnée du combobox (5 colonnes) dans la première ligne vide de la feuille :

'--------------------------
Private Sub ComboBox1_Change()

With Me.ComboBox1
DerLig = Range("A65536").End(xlUp).Row + 1
For a = 0 To 4 ' 5 colonnes
Cells(DerLig, a + 1) = .List(.ListIndex, a)
Next
End With

End Sub
'--------------------------


Salutations!



"Herve78" a écrit dans le message de news:

Bonjour
J'ai un combobox multicolonnes (5) qui affiche bien tous les éléments. Mais
quand je sélectionne une ligne, il n'y a que l'élément de la 1ere colonne qui
s'affiche. Or je voudrais afficher dans le combobox tous les éléments des 5
colonnes. J'ai modifié la propriété TextColumn mais ça marche pas.

Merci d'avance pour vos idées