1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Excel2003

Discussion in 'Office-Programme' started by moritz20010, Oct 23, 2009.

Thread Status:
Not open for further replies.
  1. Hallo User

    In einer UserForm kann ich die Reihenfolge der Objekte frei wählen, etwa durch die Aktivierfolge oder z.B. den Befehl ComboBox1.SetFocus.
    Wenn ich aber in einem Arbeitsblatt mehrmals eine „ComBox“ eingefügt habe kann ich die oben genannten Befehle nicht auswählen.
    Kann mir hierzu eine Lösung zeigen?
     
  2. Urs2

    Urs2 Megabyte

    Hallo Moritz,

    Aktivierreihenfolge von Steuerelementen im Tabellenblatt? Ist mir nicht bekannt!
    Und das für ComboBoxen? Die werden doch normalerweise mit der Maus bedient...

    Wie auch immer, mit solchen Codes >
    Code:
    Private Sub ComboBox1_Click()
        ComboBox2.Activate
    End Sub
    
    Private Sub ComboBox2_Click()
        ComboBox3.Activate
    End Sub
    .
    .
    .
    ...springt die Einfügemarke bei einer Aenderung zur nächsten Combo...

    ABER > das funktioniert nur, wenn Style = 2, MatchEntry = 1 und MatchRequired = True
    Also nur eine Auswahl aus dem DropDown möglich ist, und keine freie Eingabe.

    Bei der Eingabe von "ABC" springt sonst die Marke nach der ersten Eingabe weiter, also nach dem "A"

    Gruss Urs
     
  3. Beverly

    Beverly Halbes Megabyte

    Hi Moritz,

    du hast richtig festgestellt, dass es diese Möglichkeit im Tabellenblat nicht gibt. Aber mit folgendem Code kannst du per Tab in die jeweils nächste ComboBox bzw. mit Shift+Tab in die vorhergehende ComboBox springen (Code ist für 3 ComboBoxen):
    Code:
    Option Explicit
    Dim inListIndex As Integer
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    
    Private Sub ComboBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = 9 And Shift = 1 Then
            ComboBox3.Activate
        ElseIf KeyCode = 9 Then
            ComboBox2.Activate
        End If
    End Sub
    
    Private Sub ComboBox2_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = 9 And Shift = 1 Then
            ComboBox1.Activate
        ElseIf KeyCode = 9 Then
            ComboBox3.Activate
        End If
    End Sub
    
    Private Sub ComboBox3_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = 9 And Shift = 1 Then
            ComboBox2.Activate
        ElseIf KeyCode = 9 Then
            ComboBox1.Activate
        End If
    End Sub
    
    Der Code funktionert natürlich nur, wenn du dich bereits in einer ComboBox befindest, nicht aus dem Tabellenblatt in eine ComboBox.
     
Thread Status:
Not open for further replies.

Share This Page