TextBox ControlSource
Bonjour à tous,
Je cherche en VBA à appliquer une Range pour un champ type TextBox pour aider l'utilisateur à préremplir le champ.
Exemple :
Je souhaiterais que si dans la colonne A
Il y a une liste :
Janvier
Février
Mars
...
Je voudrais que lorsqu'il commence à saisir dans la TextBox "Jan" que ça lui propose automatiquement la suite.
Je ne peux pas le faire en désignant la feuille car, le fichier est amené à évoluer.
Dim feuilleData As Worksheet
Set feuilleData = ActiveSheet
nbData As Integer
nbData = Range("A6:A" & Range("A" & Rows.Count).End(xlUp).Row)
TextBox.ControlSource = nbDataJ'étais parti sur cette idée mais cela ne fonctionne pas, si quelqu'un a une idée pour m'aiguiller.En vous remerciant,
Bonjour RazoG
Pourquoi en VBA?
Je pense qu'avec une table des mois en référentiel
Puis dans Outil/ Outils de données/ Validation de données
avec le type "List" sur le référentiel
Puis en appliquant cette validation de données à la colonne voulue, la solution est peut-être aussi simple
En VBA pourquoi pas.
dans Google ,
Rechercher " VBA Validation List"
ou Rechercher "VBA Textbox autocomplete"
Bonjour Scraper,
Excusez-moi pour la réponse tardive...
Merci je n'arrivais pas à mettre de mots de la fonction que je recherchais mais il s'agit effectivement de l'autocompletion.
Private Sub ComboBox5_Change()
On Error GoTo Error
Dim i As Long
With Me.ComboBox5
.List = ActiveSheet.Range("A6", ActiveSheet.Cells(Rows.Count, "A").End(xlUp)).Value
.ListRows = Application.WorksheetFunction.Min(6, .ListCount)
.DropDown
If Len(.Text) Then
For i = .ListCount - 1 To 0 Step -1
If InStr(1, .List(i), .Text, vbTextCompare) = 0 Then .RemoveItem i
Next
.DropDown
End If
End With
Error:
If Err.Number = 381 Then MsgBox ("Pas assez de mesures")
End SubJ'ai adapté mon code avec la fonction que j'ai trouvé ci-dessus et ça fonctionne très bien.
Merci beaucoup.