Microsoft 365 Ecriture dans Combobox

VBA_dev_Anne_Marie

XLDnaute Occasionnel
Bonjour ma combobox est liée à une base de données. Néanmoins, je voudrais écrire la donnée manuellement dans la combobox, si la donnée est introuvable.
Est-ce qu'il y a une option pour cela ? Est-ce que je peux ajouter une ligne à vide dans la combobox ?

Merci beaucoup !
 
Solution
bonsoir
si j'ai bien compris
voir du coté des propriétés des combo.
Du coté du style
DropDownlist: on n'a accès qu'a une liste , on ne peut pas inscrire des items ne figurant pas dans la liste
Dropdowncombo : on peut rajouter des items ne figurant pas dans la liste

regarde aussi la propriété matchentry

vgendron

XLDnaute Barbatruc
Bonsoir

comme on ne comprend pas ce que tu veux faire, regarde la PJ
j'y ai mis un combo alimenté par la table de la feuille

au lancement du formulaire:
1) clic directement sur valider SANS rien toucher au combo
2) selectionne un élément du combo PUIS valider
3) tape quelques chose qui ne correspond à aucun élément du combo PUIS valider
 

Pièces jointes

  • Combobox.xlsm
    21.4 KB · Affichages: 6

VBA_dev_Anne_Marie

XLDnaute Occasionnel
Bonsoir

comme on ne comprend pas ce que tu veux faire, regarde la PJ
j'y ai mis un combo alimenté par la table de la feuille

au lancement du formulaire:
1) clic directement sur valider SANS rien toucher au combo
2) selectionne un élément du combo PUIS valider
3) tape quelques chose qui ne correspond à aucun élément du combo PUIS valider
Merci beaucoup !
Vous avez bien compris mon besoin, mais en fait je n'ai pas de bouton supplémentaire "Valider", je souhaite que le texte écrit manuellement dans la liste soit récupéré avec la fonction _Change/Click. Est-ce que c'est possible ?
 

dysorthographie

XLDnaute Accro
Bonjour,
j'y colle ma petite touche personnel!
VB:
Private Sub UserForm_Initialize()
Dim Cn As String, Rs As Object
Cn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=YES;"""
Set Rs = CreateObject("AdoDb.RecordSet")
Rs.Open "Select * from [Combo$]", Cn
Me.ComboBox1.Column = Rs.getrows
Rs.Close
Set Rs = Nothing
End Sub

Private Sub ComboBox1_Click()
If ComboBox1.ListIndex > -1 Then
MsgBox ComboBox1.Text
End If
End Sub

Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
    If ComboBox1.ListIndex = -1 And ComboBox1.Text <> "" Then
        ComboBox1.AddItem ComboBox1.Text
        ComboBox1.ListIndex = ComboBox1.ListCount - 1
        
    End If
ComboBox1_Click
End If
End Sub
 

Pièces jointes

  • ComboAdo.xlsm
    22.9 KB · Affichages: 2
Dernière édition:

VBA_dev_Anne_Marie

XLDnaute Occasionnel
Bonjour,
j'y colle ma petite touche personnel!
VB:
Private Sub UserForm_Initialize()
Dim Cn As String, Rs As Object
Cn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=YES;"""
Set Rs = CreateObject("AdoDb.RecordSet")
Rs.Open "Select * from [Combo$]", Cn
Me.ComboBox1.Column = Rs.getrows
Rs.Close
Set Rs = Nothing
End Sub

Private Sub ComboBox1_Click()
If ComboBox1.ListIndex > -1 Then
MsgBox ComboBox1.Text
End If
End Sub

Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
    If ComboBox1.ListIndex = -1 And ComboBox1.Text <> "" Then
        ComboBox1.AddItem ComboBox1.Text
        ComboBox1.ListIndex = ComboBox1.ListCount - 1
       
    End If
ComboBox1_Click
End If
End Sub
Merci beaucoup !
 

Discussions similaires

Réponses
27
Affichages
1 K

Statistiques des forums

Discussions
315 094
Messages
2 116 146
Membres
112 669
dernier inscrit
Guigui2502