combobox ecriture intuitive avec choix en dehors de la liste

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 !

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 :
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.
 
Je vous remercie pour vos suggestion, mais c'est bon, j'ai contourné le problème avec ce que j'ai écrit ci-dessus.
Ca fonctionne désormais comme je le veux :
- remplissage du bloc adresse quand j'appuie sur entrée si le choix existe dans la liste.
- Si le choix n'existe pas, je rempli l'adresse manuellement et elle est ajoutée dans le tableau lors de la macro impression.

Merci de vous êtres intéressé à mon problème.
Cordialement,
punk_sportif
 
- 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
459
Réponses
1
Affichages
313
Retour