Histoire de replissage de combobox

  • Initiateur de la discussion Initiateur de la discussion David Jonc.
  • 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 !

D

David Jonc.

Guest
Bonjour a tous,

voila, je me heurte a un probleme, j'ai rempli un combobox a partr des cellules d'une feuille de calcul, mais le procleme est que je prend une plage de A1 a D6, et ce que je veux dans ma combo box n'est pas de A1 a A6, mais de B1 a B6.
Si je modifie ma plage en mettant B1 a D6, c'est ok, mais je ne peux plus acceder a mes données situées en A1:A6 pour les afficher dans un textbox.

Comment pourrai je faire, sachant que je suis parti d'un bout de code de ce site.

Private Sub ComboBox1_Change()
Me.TextBox1 = Me.ComboBox1.Column(1, Me.ComboBox1.ListIndex)

End Sub

Private Sub UserForm_Initialize()
MsgBox "userform initialize"

Dim Plage As String

With Sheets("Feuil1")
Plage = .Range("A1😀" & .Range("D65536").End(xlUp).Row).Address
End With

With Me.ComboBox1
.ColumnCount = 1
.ColumnWidths = "100;0"
.RowSource = "Feuil1!" & Plage
End With

End Sub

J'ai bien essayé de changer quelque chose da,s la propriété rowsource, mais rien n'y fait. Est ce que quelqu'un aurait une idée?

Merci beaucoup
 
salut 😉,

bon j'ai pas repri le code mais bon ça marche quand même 😉

Private Sub UserForm_Initialize()
For i = 1 To 6
If ActiveWorkbook.ActiveSheet.Range("b" & i).Value <> "" Then ComboBox1.AddItem ActiveWorkbook.ActiveSheet.Range("b" & i).Value
Next i
End With
 
Bonjour David, Arnaud, le Forum

Non Arnaud je pense avoir compris que David veut pouvoir accéder à ses 3 colonnes da,s la Combobx, tout en affichant qu'une colonne.

Je propose une toute petite modif du code comme ceci :
Private Sub ComboBox1_Change()
Me.TextBox1 = Me.ComboBox1.Column(1, Me.ComboBox1.ListIndex)

End Sub

Private Sub UserForm_Initialize()
MsgBox "userform initialize"

Dim Plage As String

With Sheets("Feuil1")
Plage = .Range("A1😀" & .Range("D65536").End(xlUp).Row).Address
End With

With Me.ComboBox1
.ColumnCount = 3
.ColumnWidths = "0;100;0"
.RowSource = "Feuil1!" & Plage
End With

End Sub

Ensuite pour accéder aux données de la colonne 1, il suffira de faire :
Textbox1 = ComboBox1.Column(0, ComboBox1.ListIndex)

Bonne journée
@+Thierry
 
Salut "David Jonc.et arnaud"
et Salut Thierry j'allais poster alors que Thierry avait repondu

Bonjour le "FORUM"
peut etre une solution tu affiches 2 colonnes dans ta combo tu selectionnes dans B et tu affiche A dans le textbox
Private Sub ComboBox1_Change()
Me.TextBox1 = Me.ComboBox1.Column(0, Me.ComboBox1.ListIndex)
End Sub

Private Sub UserForm_Initialize()
MsgBox "userform initialize"

Dim Plage As String

With Sheets("Feuil1")
Plage = .Range("A1😀" & .Range("D65536").End(xlUp).Row).Address
End With

With Me.ComboBox1
.ColumnCount = 2
.ColumnWidths = "50"
.RowSource = "Feuil1!" & Plage
.TextColumn = 2
End With
End Sub
A+++
Jean Marie
 
- 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éponses
9
Affichages
256
Réponses
7
Affichages
316
Réponses
7
Affichages
222
Réponses
14
Affichages
332
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
407
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
418
Retour