punk_sportif
XLDnaute Nouveau
Bonjour tout le monde
Dans un combobox, une liste de noms est chargée venant d'un tableau d'une autre feuille.
Voulant une écriture intuitive, j'ai pompé un code de Jacques Boisgontier sur son site (merci à la lui au passage.
L'écriture intuitive dans le combox marche niquel, par contre, ca ne réagit pas exactement comme je le voudrais :
Je souhaite pouvoir écrire un nom qui n'est pas dans la liste.
Mon but :
Admettons un combobox qui comprend :
- tata
- toto
- tutu
Je voudrais quand meme pouvoir écrire "titi" et qu'il me le garde dans mon combobox et donc ma cellule. Or pour le moment, si le texte n'est pas dans la liste, il revient à la liste vide.
Voici le code :
J'ai essayé de changer la propriété du combobox MatchRequired, mais c'est sans effet.
J'ai essayé en supprimant des lignes du code, mais rien à faire...
Bref, je seche.
Je ne sais pas si je suis très clair dans mon explication, mais si quelqu'un peut m'aider, je suis preneur.
Merci.
Dans un combobox, une liste de noms est chargée venant d'un tableau d'une autre feuille.
Voulant une écriture intuitive, j'ai pompé un code de Jacques Boisgontier sur son site (merci à la lui au passage.
L'écriture intuitive dans le combox marche niquel, par contre, ca ne réagit pas exactement comme je le voudrais :
Je souhaite pouvoir écrire un nom qui n'est pas dans la liste.
Mon but :
Admettons un combobox qui comprend :
- tata
- toto
- tutu
Je voudrais quand meme pouvoir écrire "titi" et qu'il me le garde dans mon combobox et donc ma cellule. Or pour le moment, si le texte n'est pas dans la liste, il revient à la liste vide.
Voici le code :
Code:
Dim a()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([e7:e7], Target) Is Nothing And Target.Count = 1 Then
a = Application.Transpose(Sheets("adresses").Range("Tableau1[nom]").Value)
Me.ComboBox1.List = a
Me.ComboBox1.Height = Target.Height + 3
Me.ComboBox1.Width = Target.Width
Me.ComboBox1.Top = Target.Top
Me.ComboBox1.Left = Target.Left
Me.ComboBox1 = Target
Me.ComboBox1.Visible = True
Me.ComboBox1.Activate
Me.ComboBox1.DropDown ' ouverture automatique au clic dans la cellule (optionel)
Else
Me.ComboBox1.Visible = False
End If
End Sub
Private Sub ComboBox1_Change()
If Me.ComboBox1 <> "" And IsError(Application.Match(Me.ComboBox1, a, 0)) Then
Me.ComboBox1.List = Filter(a, Me.ComboBox1.Text, True, vbTextCompare)
Me.ComboBox1.DropDown
Else
ActiveCell = Me.ComboBox1
End If
End Sub
Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Me.ComboBox1.List = a
Me.ComboBox1.Activate
Me.ComboBox1.DropDown
End Sub
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then ActiveCell.Offset(1).Select
End Sub
J'ai essayé de changer la propriété du combobox MatchRequired, mais c'est sans effet.
J'ai essayé en supprimant des lignes du code, mais rien à faire...
Bref, je seche.
Je ne sais pas si je suis très clair dans mon explication, mais si quelqu'un peut m'aider, je suis preneur.
Merci.