Auto complète de la zone de texte dans excel VBA

Je suis entrain de créer une feuille excel qui serait saisie semi-automatique d'un texte basé sur le texte contenu dans une colonne particulière. Après avoir essayé de faire un moi-même, sans succès, j'étais à la recherche en ligne pour des exemples de codes que je puisse modifier et l'intégrer dans mon programme. (et de ne pas plagier)

J'ai téléchargé Workbook1.xls de http://www.ozgrid.com/forum/showthread.php?t=144438

Le code est

Option Explicit
Dim ufEventsDisabled As Boolean
Dim autoCompleteEnabled As Boolean
Dim oRange As Range
Private Sub TextBox1_Change()
If ufEventsDisabled Then Exit Sub
If autoCompleteEnabled Then Call myAutoComplete(TextBox1)
End Sub
Sub myAutoComplete(aTextBox As MSForms.TextBox)
Dim RestOfCompletion As String
On Error GoTo Halt
With aTextBox
If .SelStart + .SelLength = Len(.Text) Then
RestOfCompletion = Mid(oRange.Cells(1, 1).AutoComplete(.Text), Len(.Text) + 1)
ufEventsDisabled = True
.Text = .Text & RestOfCompletion
.SelStart = Len(.Text) - Len(RestOfCompletion)
.SelLength = Len(RestOfCompletion)
End If
End With
Halt:
ufEventsDisabled = False
On Error GoTo 0
End Sub
Private Sub TextBox1_AfterUpdate()
Dim strCompleted As String
With TextBox1
strCompleted = oRange.AutoComplete(.Text)
If LCase(strCompleted) = LCase(.Text) Then
ufEventsDisabled = True
.Text = strCompleted
ufEventsDisabled = False
End If
End With
End Sub
Private Sub TextBox1_Enter()
Set oRange = ThisWorkbook.Sheets("Sheet1").Range("f4")
End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
autoCompleteEnabled = KeyCode <> vbKeyBack
autoCompleteEnabled = ((vbKey0 <= KeyCode) And (KeyCode <= vbKeyZ))
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_Click()
End Sub

Si vous percevez la ligne RestOfCompletion = Mid(en oRange.Les cellules(1, 1).La saisie semi-automatique(.Texte), Len(.Texte) + 1), je me demandais ce que la saisie semi-automatique est en train de faire ici. Ce n'est pas un construit en fonction et n'est pas définie n'importe où. Toujours le code fonctionne très bien. Je suis très curieux.

Grâce

InformationsquelleAutor Ank | 2011-11-01