Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

combobox ecriture intuitive avec choix en dehors de la liste

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.
 

punk_sportif

XLDnaute Nouveau
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
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…