Hej, jag har följande lilla enkla kod snutt i en exel userform som tar ett värde från Om det är på ett Userformulär behöver du bara sätta egenskapen Default till tru för knappen som lägger till:Uppdatera en listbox med "ENTER" tangenten?
en textbox och lägger detta i en listbox. Användaren skriver ett nytt värde textrutan som adderas till listboxen osv. Detta används till att mata in långa listor.
Sub Addera_Post()
With UserForm1
.ListBox1.AddItem .TextBox1.Value 'tar värdet från textboxen, adderar i listboxen
.TextBox1 = "" 'Rensar innehållet i textboxen
.TextBox1.SetFocus 'Flyttar fokusen/markören tillbaka till textboxen och ny post kan matas in.
End With
End Sub
När koden triggas från en knapp så fungerar allt, men jag skulle vilja förenkla ytterligare
för användarna genom att skippa knapp tryckningen. Dvs att koden triggas utav "ENTER" tangeten.
Har försökt 12565 olika trigg varianter med textboxens "afterupdate", "exit" händelser men
lyckas inte att flytta fokusen till textboxen så att markören blinkar där redo för en ny post att matas in.
Nån vänlig själ därute som vill tala om hur man gör?Sv: Uppdatera en listbox med "ENTER" tangenten?
Private Sub CommandButton1_Click()
Dim Text As String: Text = RTrim(TextBox1.Text)
If Len(Text) Then
ListBox1.AddItem Text
TextBox1.Text = ""
End If
End Sub
Om kontrollerna ligger i arbetsboken finns ingen default egenskap på knappen. Då kan du använda KeyDown eventet i textboxen:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim Text As String: Text = RTrim(TextBox1.Text)
Select Case KeyCode
Case vbKeyReturn
If Len(Text) Then
ListBox1.AddItem Text
TextBox1.Text = ""
End If
End Select
End Sub