Tasto Tab in combobox



  • Tasto Tab in combobox
    di Massimo84 (utente non iscritto) data: 04/12/2016 19:50:34

    Ciao ragazzi,
    ricorro a voi perchè ho un piccolo problema con excel.
    Avrei bisogno di una formula su vb che mi permetta di passare con il tasto TAB (per velocizzare) da una cella a una combobox,
    Ad esempio vorrei usare il tasto tab per passare dalla cella b3 alla combobox1.
    Mi potete aiutare?
    Grazie



  • di Zer0Kelvin data: 04/12/2016 22:59:05

    Ciao.
    Qui trovi la soluzione
    msdn.microsoft.com/en-us/library/office/ff197461.aspx

    Una volta eseguita la prima istruzione (vedi sotto), il tasto TAB provocherà l'esecuzione di MyProc.
    Alla fine (per es. alla chiusura del Workbook) occorre rimettere le cose a posto (seconda istruzione).
     
    Application.OnKey "{TAB}", "MyProc"
    
    Application.OnKey "{TAB}", ""



  • di Massimo84 (utente non iscritto) data: 11/12/2016 10:53:43

    Ciao Zer0Kelvin,
    grazie della risposta.
    Sono riuscito con una funzione a usare il tasto tab per andare da una combobox a una cella:

    Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyTab Or KeyCode = vbKeyReturn Then
    If CBool(Shift And 1) Then
    ComboBox1.Activate
    Else
    ActiveSheet.Range("E8").Activate

    End If
    End If

    End Sub


    Ma non riesco a farlo da cella a combobox.
    Non riesco ad esempio a passare con tab da cella G8 a Combobox2.
    Mi sai dare qualche delucidazione?
    Grazie



  • di Massimo84 (utente non iscritto) data: 22/01/2017 13:04:08

    Zer0Kelvin riesci ad aiutarmi?
    Grazie



  • di Massimo84 (utente non iscritto) data: 22/01/2017 14:32:14

    Ragazzi in alternativa è possibile con un ciclo ripetere questa operazione a 10 combobox senza doverla scrivere 10 volte?
    Ci ho provato ma si blocca sempre alla prima

    Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyTab Or KeyCode = vbKeyReturn Then
    If CBool(Shift And 1) Then
    ComboBox1.Activate
    Else
    ComboBox2.Activate
    End If
    End If

    End Sub

    Grazie in anticipo



  • di patel data: 22/01/2017 14:38:34

    se vuoi risposte attendibili allega un file di esempio con anche i tuoi tentativi non riusciti





  • di Massimo84 (utente non iscritto) data: 22/01/2017 14:47:54

    Ecco l'esempio:

    For i = 1 to 5
    Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyTab Or KeyCode = vbKeyReturn Then
    If CBool(Shift And i) Then
    ComboBox1.Activate
    Else
    ComboBox2.Activate
    End If
    End If
    next i
    End Sub

    Grazie in anticipo dell'aiuto.



  • di patel data: 22/01/2017 16:13:03

    un file su cui testare la tua macro e le soluzioni