Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Cursor in Textfeld einer Userform/LIstbox

Forumthread: Cursor in Textfeld einer Userform/LIstbox

Cursor in Textfeld einer Userform/LIstbox
06.07.2024 10:10:05
Lordy
Hy Leute

leider finde ich nichts im Netz, oder vlt sind Suchbegriffe falsch

Hab eine Userform mit einer Listbox und Textbox...das befüllen ist erstmal kein Problem, auch die Suchfunktion funktioniert

Aber ich will bei Aufruf der Userform, das erstens der Cursor im Textfeld direkt ist, damit man direkt mit eingabe des Suchfeldes(Textbox) beginnen kann ohne vorher mit Mouse reinzuklicken.

Zweitens würde ich gerne den ersten Eintrag, nach Suche mit "Enter" übernehmen, markiert wird der erste Eintrag schon...

Kann doch eigentlich nicht so schwer sein*lol*
Anzeige

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 10:28:30
Beverly
Hi,

setze in den Eigenschaften der TextBox den TabIndex auf 0, dann wird diese als allererstes aktiviert.

Um eine bestimmte Taste zu definieren benutze z.B. das KeyPess-Ereignis der TextBox - damit kannst du festlegen, dass z.B. bei Enter der Inhalt übernommen wird.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 15:23:17
Kuwer
Hallo Lordy,

Du hattest ListBox1_KeyPress statt TextBox1_KeyPress drin. War aber egal. KeyPress kann Enter nicht abfangen.
So sollte es gehen mit TextBox1_KeyDown:

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

Dim rngS As Range
'MsgBox KeyCode
If KeyCode = 13 Then
' Hier Beispielcode, um die Zeile mit dem ausgewählten Wert in Spalte D zu finden
' Ändern Sie den Bereich und die Spaltennummer entsprechend Ihrer Excel-Tabelle
Set rngS = ActiveSheet.Columns(4).Find(ListBox1.Value, LookIn:=xlValues)
If Not rngS Is Nothing Then
Application.Goto rngS, True
Else
MsgBox "Eintrag nicht gefunden!"
End If
'Userform schließen
Unload Me
End If
End Sub

https://www.herber.de/bbs/user/170740.xlsm

Gruß, Uwe
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
07.07.2024 12:52:01
Lordy
Hallo Leute

Kam erst jetzt dazu wieder zu gucken, soweit klappt nun alles...

Danke für Hilfe Karin und Uwe

Greetz
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 10:43:47
Lordy
Hallo Karin

Das war ja einfach*kopfgegenwandklatsch*

ist es normal bei Keypress 2x Enter drücken muß? Denke einmal von Textbox zu Listbox und dort bestätigen zur Übernahme der Daten

mir ist noch ein Bug aufgefallen...

Ich suche ja im Textfeld eine Google-Suche (kann also buchstaben mitten vom Wort eingeben und es wird angezeigt) und der erste/obertste Eintrag markiert, wenn ich nun falsche Zeichen eingebe kommt Fehlermeldung...

Denke über ne Abfrage ob falsch oder wahr (zb. ob in Listbox was steht...könnte ich das umgehen oder?

Hier der Code von dem KeyPress

Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Dim tbl As ListObject
Set tbl = Tabelle13.ListObjects(1)
Dim header As Variant
Dim Spalte As Long
Spalte = 1
Dim Zeile As Long


With Worksheets(1)

'Tabelle einlesen
Set tbl = Tabelle13.ListObjects(1)


'Zeile hinzufügen
tbl.ListRows.Add

'Zeile definieren
Zeile = tbl.DataBodyRange.Rows.Count

'Zeilenhöhe anpassen
.Rows(Zeile + tbl.HeaderRowRange.Row).RowHeight = .Rows(tbl.HeaderRowRange.Row + 1).RowHeight

End With

'Angeklickte Zeile in Listbox in Tabelle Bestellung_Self übertragen
With Tabelle13

tbl.DataBodyRange(Zeile, 1).Value = ListBox1.List(ListBox1.ListIndex, 0)
tbl.DataBodyRange(Zeile, 2).Value = ListBox1.List(ListBox1.ListIndex, 1)
tbl.DataBodyRange(Zeile, 3).Value = ListBox1.List(ListBox1.ListIndex, 2)

End With


'Userform schließen
Unload Me

UfMessage.Show


End Sub

Coder der Suche:
Private Sub TextBox1_Change()

Dim Zeile As Long


'Listbox leeren
Me.ListBox1.Clear

'Schleife über alle Zeilen der Tabelle
For Zeile = 12 To Tabelle2.Cells(Rows.Count, 4).End(xlUp).Row

If InStr(1, LCase(Tabelle2.Cells(Zeile, 5).Value), LCase(Me.TextBox1.Value)) > 0 Or _
InStr(1, LCase(Tabelle2.Cells(Zeile, 6).Value), LCase(Me.TextBox1.Value)) > 0 Then

'Listbox befüllen
Me.ListBox1.AddItem Tabelle2.Cells(Zeile, 4).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Tabelle2.Cells(Zeile, 5).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Tabelle2.Cells(Zeile, 6).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Tabelle2.Cells(Zeile, 9).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Tabelle2.Cells(Zeile, 10).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Tabelle2.Cells(Zeile, 11).Value

End If

Next Zeile

'Erstes Element angewählt in der Listbox
ListBox1.Selected(0) = True

End Sub

Übrigens Danke für die schnelle HIlfe

grüße
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 10:54:16
Lordy
Nachtrag:

Die Geschichte mit
"mir ist noch ein Bug aufgefallen...

Ich suche ja im Textfeld eine Google-Suche (kann also buchstaben mitten vom Wort eingeben und es wird angezeigt) und der erste/obertste Eintrag markiert, wenn ich nun falsche Zeichen eingebe kommt Fehlermeldung...

Denke über ne Abfrage ob falsch oder wahr (zb. ob in Listbox was steht...könnte ich das umgehen oder? "

Konnte ich Dank ChatGPT lösen....
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 11:01:01
Beverly
Dann solltest du deine Lösung auch posten, denn möglicherweise haben andere User ja ein ähnliches Problem und könnten von der Lösung dann profitieren.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 11:11:29
Lordy
Hy Karin

damit hab ich kein Problem ;)

Hier die Abfrage:

If ListBox1.ListCount > 0 Then
'Erstes Element angewählt in der Listbox
ListBox1.Selected(0) = True

End If

Fehlt jetzt nur wie ich die 2x Enter Geschichte in GRiff kriege...falls überhaupt möglich....

Grüße
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 11:17:14
Lordy
Leider aufgefallen, das es noch nciht das Goldene vom Ei ist*löl*
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 11:21:26
Beverly
Dann solltest du vielleicht erstmal meine Frage beantworten und außerdem deine Mappe hochladen?

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 11:38:03
Lordy
Hallo Karin

Seh leider nicht die Frage von Dir :( sorry

Aber hier erstmal meine Mappe es geht um die Userform UfProduktLaden, in UfProduktSuchen geht es

Hoffe reicht was ich rauskopiert habe...

https://www.herber.de/bbs/user/170730.xlsm
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 11:50:00
Onur
Eine nicht lauffähige Datei (weil keine Arbeitsblatter) kannst du dir auch sparen. Ist das Selbe, als ob du nur den Code hier gepostet hättest.
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 11:53:46
Lordy
Hallo Karin

Sorry..Du redest jetzt von der ersten Datei oder?

Im Prinzip hätte ich ganze Mappe geschickt, aber das sprengt ja den Rahmen :(

Und leider mach ich erst seit 6 Wochen VBA bzw Excel etwas tiefer asl das übliche, somit sind die Kenntnisse etwas gewagt

Grüße
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 11:58:55
Beverly
Diesen Beitrag habe ich nicht geschrieben. ;-)

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 11:59:30
Onur
Dann versuche doch mal die Problem-Userform zum Testen zu starten - der Code steigt sofort aus, weil weder das geforderte Blatt noch die geforderten Listobjecte vorhanden sind.
Wenn man erst den ganzen Code umschreiben bzw alles hinzufügen würde, um ihn zum Laufen zu bringen, damit man überhaupt anfangen kann, ihn zu testen - DAS würde den Rahmen sprengen.
Deine Daten interessieren keine Sau, die kannst du anonymisieren.
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 12:14:03
Lordy
Hy Karin

Der kurze Anpflaumer nehm ich mit Humor ;) Konnte es ja verstehen...

Zu den Daten, Du meinst sicher Materialliste, das sind keine geheimen nur Artikel für Einbruchmeldeanlagen, was ich beruflich eigentlich mache (Techniker), aber wie gesagt öffentlich bekannt :)

Wie gesagt programmieren in VBA hab ich erst vor 6 Wochen ca angefangen, weil ich ein Tool schaffen wollte zur Erleichterung...Und inzwischen etwas ausgeartet*lol*
Einziger Vorteil den ich habe, ich hab vor 36 Jahren in Basic und vor 5 Jahren Wago SPS (in ST) programmiert, dazwischen war nix....Friemel mich gerade mit Youtupe, ChatGPT und zum Glück mit Euch durch*Daumenhoch)

Grüße

PS:Irgendwie will es mich moppen, gerade eben ging es (Buchung_Change) und nun nicht mehr...selbe Fehler
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 12:19:51
Onur
"PS:Irgendwie will es mich moppen, gerade eben ging es (Buchung_Change) und nun nicht mehr...selbe Fehler " ?
Kann ich leider nicht nachvollziehen, da mir ja die lauffähige Datei fehlt.
"Fehlt jetzt nur wie ich die 2x Enter Geschichte in GRiff kriege" - Um zu wissen, WAS du damit meinst und um die Geschichte in Griff zu kriegen, muss man den "Fehler" erstmal selber erleben, und das geht nur mit einer lauffähigen Datei.
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 11:53:18
Beverly
Sorry, da habe ich wohl vergessen den Beitrag abzuschicken. Meine Frage war: in welcher Codezeile kommt der Fehler und was sagt der Debugger genau?

Was muss man tun um den Fehler auszulösen?

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 11:57:20
Lordy
Hallo Karin

zur Frage...wenn ich unter Buchung_Change gehe dort Produkt-ID oder Produktnamen Eingabefeld drücke, kommt ja die UFProduktLaden Userform

Wenn ich dort anfange was einzugeben, verschwindet Userform.....
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 12:35:24
Beverly
Es sollte zuerst geprüft werden, ob der Suchbegriff "Produktnamen" überhaupt vorhanden ist - andernfalls Fehler. Nach diesem Prinzip:

    Dim rngSuche  As Range

Set rngSuche = .Cells.Find(What:=("Produktnamen"), LookIn:=xlValues, LookAt:=xlWhole)
If Not rngSuche Is Nothing Then
rngSuche.Offset(0, 1).Value = ListBox1.List(ListBox1.ListIndex, 1)
End If


Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 12:41:20
Lordy
Hallo Karin

Ich vermute eher das hat was mit dem MouseRad zu tun, sobald ich ja in Listbox gehe kann ich ja per Rad scrollen....dann ist natürlich Textbox inaktiv, aber wenn man das weiß
kann man es ja verhindern mit der Mouse sonst wo hinzugehen ;)

Ja ich weiß hab vergessen Firmennamen zu entfernen in der letzten Mappe, gerade gesehen...shit happens*lol*
Anzeige
AW: Cursor in Textfeld einer Userform/LIstbox
06.07.2024 13:34:49
Beverly
Wenn du die Regeln einer guten Programmierung missachten möchtest, kann ich dir leider nicht weiterhelfen.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige