Office: (Office 365) Zwischen Textfeldern mit Tabulator Taste wechseln

Helfe beim Thema Zwischen Textfeldern mit Tabulator Taste wechseln in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe mich das erste Mal mit Textfeldern (AktiveX Steuerelement) befasst. Mein Plan ist eine Art Formular zu machen, wo man zu einem... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Andreas7611, 21. Februar 2025.

  1. Zwischen Textfeldern mit Tabulator Taste wechseln


    Hallo,

    ich habe mich das erste Mal mit Textfeldern (AktiveX Steuerelement) befasst.
    Mein Plan ist eine Art Formular zu machen, wo man zu einem Bestellschein Adresse, Lieferadresse, Kundennummer und Datum eingeben kann.
    Ich habe das mittlerweile erstellt. Die Eingabefelder sind mit den dazugehörigen Zellen in dem Bestellschein verknüpft. Im Prinzip funktioniert das ganz gut. Leider habe ich feststellen müssen, das es scheinbar nicht möglich ist zwischen den Feldern mit der Tabulator-Taste zu wechseln (Bzw. Shift-Tab für zurück), wie man es eigentlich von solchen Feldern gewohnt ist.

    Ich habe auch schon versucht mich da einzulesen, aber es scheint von Excel gar nicht vorgesehen. Und jedes Mal das nächste Feld anzuklicken halte ich für Kontraproduktiv.

    Ich möchte das aber ungerne aufgeben und habe mal bei ChatGPT nachgefragt und der hat mir da einen Programmcode raus gegeben.
    Allerdings wirft der bei mir nur Fehlermeldungen heraus und ich verstehe auch nicht wirklich was er mit (Zeile 24) "Öffne den Code-Bereich (Doppelklick auf jedes Textfeld im VBA-Editor)" so richtig meint. Ich habe die Code-Seite der Tabelle aufgerufen und konnte da "Textfeld1" auswählen. Dann wird - wenn ich das richtig verstehe - ein Codebereich für das Textfeld eingerichtet. Hier soll ich nun den Code einfügen wie er unten steht (25-35) - die Zeilennummern lösche ich natürlich.

    Wenn ich das aber so eingebe, bekomme ich eine Fehlermeldung, dass "TextBox_KeyDown" nicht definiert ist.
    Damit bin ich mit meinem bescheidenem Wissen auch am Ende.

    Mich wundert hierbei auch, dass in Zeile 26 am Ende "Shift" steht. Eigentlich will ich ja mit der Tab-Taste etwas tun. Aber kann natürlich auch was anderes bedeuten.

    Den ersten Code-Block (4 - 23) habe ich unter "DieseArbeitsmappe" eingefügt. Ich denke mal, dass sie dann global funktioniert und nicht irgendwie "aktiviert" werden muß?

    Vielleicht kann sich ja jemand mit Ahnung den Code anschauen, ob der Prinzipiell richtig ist, oder nur "KI-Müll" ist. Gerne auch einen Zusatz, wie man das macht, das man mit Umschalt+TAB ein Feld zurück kann.

    Vielen Dank euch allen.

    Hier die KI-Antwort (wo mich echt wundert, wie gut die geschrieben ist):


    Code:
    1.    Füge mehrere ActiveX-Textfelder ein:
    o    Gehe zu Entwicklertools > Einfügen > ActiveX-Steuerelemente und wähle das Textfeld (TextBox).
    o    Füge mehrere TextBoxen ein (z. B. TextBox1, TextBox2, TextBox3 usw.).
    o    Notiere dir die Namen der Textfelder (du kannst sie in den Eigenschaften (F4-Taste) überprüfen und ggf. umbenennen).
    2.    Öffne den VBA-Editor:
    o    Drücke ALT + F11.
    3.    Code in "DieseArbeitsmappe" oder ein Modul einfügen:
    o    Wähle "DieseArbeitsmappe" (oder ein neues Modul) und füge den folgenden Code ein:
    4.    Private Sub TextBox_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    5.        Dim ctrl As Control
    6.        Dim nextCtrl As Control
    7.        Dim found As Boolean
    8.   
    9.        ' Prüfen, ob die Tab-Taste gedrückt wurde
    10.        If KeyCode = vbKeyTab Then
    11.            For Each ctrl In Me.Controls
    12.                ' Falls das aktuelle Textfeld fokussiert ist
    13.                If TypeName(ctrl) = "TextBox" Then
    14.                    If found Then
    15.                        ' Nächstes Textfeld fokussieren
    16.                        ctrl.SetFocus
    17.                        Exit Sub
    18.                    End If
    19.                    If ctrl Is Me.ActiveControl Then found = True
    20.                End If
    21.            Next ctrl
    22.        End If
    23.    End Sub
    24.    Diesen Code für jedes Textfeld aktivieren:
    o    Öffne den Code-Bereich (Doppelklick auf jedes Textfeld im VBA-Editor) und füge für jedes Textfeld folgenden Code ein:
    25.    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    26.        TextBox_KeyDown KeyCode, Shift
    27.    End Sub
    28.   
    29.    Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    30.        TextBox_KeyDown KeyCode, Shift
    31.    End Sub
    32.   
    33.    Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    34.        TextBox_KeyDown KeyCode, Shift
    35.    End Sub
    36.    Speichern, Makros aktivieren und testen:
    o    Deaktiviere den Entwurfsmodus (unter Entwicklertools).
    o    Klicke in das erste Textfeld, drücke TAB, und du solltest automatisch ins nächste Feld springen.
     
    Andreas7611, 21. Februar 2025
    #1
  2. R J
    R J User
    Hi,

    ich ackere jetzt nicht den nicht funktionierenden Code durch, kann Dir aber folgende Empfehlung geben.
    Wenn Du Objekte mit der Tabtaste nacheinander aktivieren willst, nutze die TabIndex Eigenschaft der Objekte und setze im Eigenschaftsfenster die Nummerierung entsprechend der gewünschten Reihenfolge (beginnend bei 0) ein. Bsp.: Ein Label mit TabIndex 0, daneben eine Textbox mit 1 als Tabindex, nächstes Label mit 2 als TabIndex als nächstes eine Listbox mit TabIndex 3 usw...
     
    Zuletzt bearbeitet: 21. Februar 2025
  3. Beverly
    Beverly Erfahrener User
    Hi Andreas,

    eine Möglichkeit - siehe Anhang. Code befindet sich im Codemodul des Tabellenblattes.


    Zwischen Textfeldern mit Tabulator Taste wechseln GrußformelZwischen Textfeldern mit Tabulator Taste wechseln Beverly's Excel - Inn
     
    Beverly, 23. Februar 2025
    #3
  4. RPP63_neu
    RPP63_neu Erfahrener User

    Zwischen Textfeldern mit Tabulator Taste wechseln

    Moin!
    Also handelt es sich um ein Tabellenblatt als Formular, bestückt mit ActiveX-Textboxes.
    Warum nimmst Du nicht Zellen als Eingabefelder?
    Zunächst alle Zellen mit Schutz versehen, dann bei den Eingabezellen den Schutz entfernen und einen Blattschutz ohne Kennwort setzen.
    Der erste Vorteil ist, dass Du keinerlei VBA-Code brauchst und mittels TAB oder Shift+TAB die Zellen ansteuerst.
    Der viel wichtigere Vorteil ist, dass sich mit Zellen erheblich mehr Eigenschaften einstellen lassen.

    Gruß Ralf
     
    RPP63_neu, 23. Februar 2025
    #4
  5. Das kann ich durchaus nachvollziehen. :)

    Ich habe keine Eigenschaft gefunden, die so heißt und im Netz auch nichts dazu. Wenn ich es direkt in Excel eingebe, bekomme ich die Antwort "Dieses Feature steht nicht mehr zur Verfügung". Wurde vielleicht herausgenommen?
    (Ich habe jetzt ein Textfeld aktiviert und habe "Eigenschaften" gewählt)

    Wenn ich das Dokument aufrufe, bekomme ich nur zwei Fehlermeldungen, dass der Code auf 64Bit Systemen nicht lauffähig ist..?! Aber ich kann mir nicht wirklich vorstellen, dass jemand noch in 32Bit arbeitet?!

    So ist es aktuell aufgebaut. Aber dann muß man halt quer durch den Bestellschein navigieren/klicken. Ich wollte es halt etwas "schöner" machen. Wenn das natürlich so ein Problem ist, lasse ich es so wie es ist. Nur wollte ich vorher mal die Experten fragen, die ja doch oft eine Lösung parat haben.
    Das Dokument zu sperren ist keine saubere Lösung, denn das funktioniert bei Excel auch nie so, wie ich das gerne hätte. Zwar ist das Überschreiben dadurch "weniger möglich" dafür funktioniert meistens auch mindestens eine andere Sache nicht, die aber benötigt wird. Das wäre in diesem Fall sicherlich ein Filter/Datenschnitt oder das Ausblenden von ungenutzten Zeilen.

    Ich werde mich noch mal mit der Sache auseinander setzen, vielleicht habe ich ja auch etwas Grundlegend verkehrt gemacht.


    Aber danke für eure Mühe
     
    Andreas7611, 24. Februar 2025
    #5
  6. Beverly
    Beverly Erfahrener User
    Hi Andreas,

    weshalb sollte man nicht mit der 32bit-Version arbeiten? Zitat:


    Ersetze die 1 Codezeile durch diese, dann sind beide Versionen berücksichtigt:

    Code:
    #If VBA7 Then
       Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
           (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    #Else
       Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
           (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    #End If

    Zwischen Textfeldern mit Tabulator Taste wechseln GrußformelZwischen Textfeldern mit Tabulator Taste wechseln Beverly's Excel - Inn
     
    Beverly, 24. Februar 2025
    #6
    1 Person gefällt das.
  7. Um ehrlich zu sein habe ich schon lange aufgehört mich um 32- und 62-Bit Installationen zu scheren :D
    Ich finde die Diskussion ist genauso mühssig wie die zwischen Bleifrei und Verbleit Benzin ;)

    Aber ja, wir arbeiten hier ja in einem Deutschlandweitem Unternehmen und brauchen auch Zugriff auf große Pivot-Tabellen. Deswegen habe ich auch gar keinen Einfluss darauf, was hier installiert ist.
    In einem anderen (Privaten) Bereich hatte ich Probleme damit, dass einige 32-Bit Programme nicht mehr richtig funktionierten. Aber wie gesagt. Das sind so Sachen, da denke ich nicht mehr drüber nach :)



    Der Code funktioniert jetzt auf jeden Fall sehr gut. Danke dafür. Das werde ich dann mal anwenden.

    Ich habe auch "versucht" das ganze nur mit Excel-Zellen und sperren des Dokumentes zu realisieren, wie es viele bei Youtube erklären. Aber was ich aktuell an den Textfeldern so liebe, dass sie in zwei Richtungen funktionieren. Ich kann also Sowohl in die Zelle schreiben, als auch in das Textfeld. So kann ich mich jederzeit entscheiden, ob ich das "hübsche Formular" nehme oder nur schnell eine Korrektur direkt im Bestellschein mache. Das verringert die Fehlerqoute wie ich finde. Das aber nur Nebenbei :)
     
    Andreas7611, 24. Februar 2025
    #7
  8. Zwischen Textfeldern mit Tabulator Taste wechseln

    Ich habe die Formel mittlerweile in meine Arbeitsmappe eingefügt und geht alles wunderbar.

    Es wäre jetzt allerdings noch hilfreich, wenn beim Wechseln in ein anderes Textfeld gleich alles was bisher drin steht markiert wird (also Quasi STRG-A).
     
    Andreas7611, 25. Februar 2025
    #8
  9. Beverly
    Beverly Erfahrener User
    Ergänze für jede TextBox diesen prinzipiellen Code:

    Code:
    Private Sub TextBox_GotFocus()
        TextBox.SelStart = 0
        TextBox.SelLength = Len(TextBox)
    End Sub
    Die TextBox-Namen natürlich für jede TextBox anpassen.


    Zwischen Textfeldern mit Tabulator Taste wechseln GrußformelZwischen Textfeldern mit Tabulator Taste wechseln Beverly's Excel - Inn
     
    Beverly, 25. Februar 2025
    #9
    1 Person gefällt das.
  10. Oh Super. Vielen Dank dafür. Klappt perfekt.

    Jetzt muß ich mal mit meinem "BASIC-Progammierkurs von 1989 Wissen" nachfragen, ob man das nicht auch in sowas wie eine FOR-NEXT-Schleife setzen könnte?
    Weil wenn man da am Ende 50 Felder hätte müsste man da ja ordentlich Text reinbringen..
    Aber ich weiß nicht, ob das in VBA überhaupt vorgesehen ist. Ist bei meinen 15 Feldern jetzt auch nicht so wichtig.
     
    Andreas7611, 26. Februar 2025
    #10
  11. Beverly
    Beverly Erfahrener User
    Generell gesehen lassen sich viele Steuerelemente mittels Klassenprogrammierung handlen, aber dabei gibt es das GotFocus-Event nicht, sodass sich die bereits vorhandenen Einträge dann nicht markieren lassen, so wie das mit dem in meinem vorherigen Beitrag geposten Code möglich ist.


    Zwischen Textfeldern mit Tabulator Taste wechseln GrußformelZwischen Textfeldern mit Tabulator Taste wechseln Beverly's Excel - Inn
     
Thema:

Zwischen Textfeldern mit Tabulator Taste wechseln

Die Seite wird geladen...
  1. Zwischen Textfeldern mit Tabulator Taste wechseln - Similar Threads - Textfeldern Tabulator Taste

  2. Formularsteuerelement Textfeld: Selbe Formatierung wie verlinkte Zelle?

    in Microsoft Excel Hilfe
    Formularsteuerelement Textfeld: Selbe Formatierung wie verlinkte Zelle?: Hallo, ich bin ja gerade dabei ein Bestellformular mit Excel zu realisieren. Das ganze sieht soweit auch schon sehr gut aus und funktioniert weitgehendst. Die Textfelder sind nun alle verlinkt...
  3. Textfeld Powerpoint Ränder

    in Microsoft PowerPoint Hilfe
    Textfeld Powerpoint Ränder: Hallo liebes Forum! Wo kann ich im PPT einstellen, dass die Ränder automatisch immer auf "0" sind, wenn ich ein Textfeld aufziehe. Auf dem Folienmaster sind die Ränderabstände bereits auf "0"...
  4. Inhalt eines Hyperlink Feldes in ein Textfeld kopieren

    in Microsoft Access Hilfe
    Inhalt eines Hyperlink Feldes in ein Textfeld kopieren: Hallo, kurz vorweg, GRUNDkenntnisse sind ein paar vorhanden, VBA-Kenntnisse sind nicht vorhanden. Ich habe eine DB zum verwalten meiner Dokumente. In einem Endlosformular erzeuge ich mit Hilfe...
  5. Textfelder verschieben

    in Microsoft Excel Hilfe
    Textfelder verschieben: Hallo Forum, ich habe zwei Textfelder auf meinem Tabellenblatt (Textfeld 4 und Textfeld 5) in meiner xlsm Excel Datei. Textfeld 4 befindet sich unter Textfeld 5. Diese beiden Textfelder nutze ich,...
  6. Schriftart im Formular

    in Microsoft Access Hilfe
    Schriftart im Formular: Hallo, ich habe folgendes Problem. in einem Formular gibt es ein Textfeld, in dem das Schriftformat auf Microsoft YaHei, Größe 10 und Schriftweite Normal eingestellt ist. Wenn ich einen neuen...
  7. Mit Tabulator zum nächsten Textfeld im Dokument springen

    in Microsoft Word Hilfe
    Mit Tabulator zum nächsten Textfeld im Dokument springen: Hallo zusammen, wie kann ich erreichen, dass nach dem drücken der Tabulatortaste (oder auch "Return"-Taste), das nächste Textfeld angesprungen wird? danke für rasche hilfe mfg dänu 59308
  8. Tabulator in Textfeld: Möchte springen

    in Microsoft Excel Hilfe
    Tabulator in Textfeld: Möchte springen: Liebes Forum, ich habe mit der Steuerelemente-Toolbox ein Formular erstellt, das mehrere Textfelder enthält. Ich hätte gerne, dass ich von einem Textfeld in das nächste springe, wenn ich den...
Schlagworte:
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden