textboxsetfocus



  • textbox.setfocus
    di Germano data: 22/07/2013 18:11:36

    Ciao a tutti come posso pilotare il setfocus delle textbox all'interno di una userform che contiene tre Frame ognuna delle quali contiene 4 testbox.
    Vorrei passare dalla textbox1 del frame1 alla textbox 11 del frame3.
    riesco a spostare il setfocus della textbox in modo ordinato (con TabIndex) solo all'interno della propria Frame.
    avevo letto qualcosa del genere ma non ricordo dove.



  • di mabolsie data: 22/07/2013 20:32:44

    Ciao Germano devi crearti un pulsantino sulla userform che ti scateni l'evento poi metti questo codice, cosi anche per altre textbox.
    Infatti il Tab ti passa in rassegna tutti i controlli nell'ordine in cui li hai creati prendendo il numero di INDEX assegnato al momento della creazione.

    Ciao Max
     
    Private Sub CommandButton1_Click()
    TextBox11.SetFocus
    End Sub



  • di Germano data: 22/07/2013 21:17:12

    Ciao Max non funziona se tu il commando (Commanbutton1_Click) lo passi da un Select Case Es:

    Grazie
     
    Dim XX
    XX= InputBox(prompt:="1 - ghtgdyh:" & chr(13) & "2 - lpokiju:"&Chr(13),Title:="abarabanCiCiCoCo")
    
    Select case
    Case is 1
    CommandButton1_Click
    Case is 2
    TextBox11.SetFocus
    
    End Select



  • di HarryBosch data: 22/07/2013 21:27:20

    A me funziona...
     
    Private Sub CommandButton1_Click()
    Dim XX
    XX = InputBox(prompt:="1 - ghtgdyh:" & Chr(13) & "2 - lpokiju:" & Chr(13), Title:="abarabanCiCiCoCo")
    
    Select Case XX
        Case 1
            CommandButton1_Click
        Case 2
            TextBox11.SetFocus
    End Select
    
    End Sub



  • di Germano data: 22/07/2013 21:42:54

    Ciao HB
    però così non funziona

     
    Private Sub TextBox1_Change() '''' Frame 1
    mia
    End Sub
    
    Sub mia() ''''' Frame 3
    Dim XX
    XX= InputBox(prompt:="1 - ghtgdyh:" & chr(13) & "2 - lpokiju:"&Chr(13),Title:="abarabanCiCiCoCo")
    Select case
    Case is 1
    CommandButton1_Click
    Case is 2
    TextBox11.SetFocus
    End Select
    End sub



  • di mabolsie data: 22/07/2013 21:49:21

    ti sei dimenticato XX nel select case
     
    Private Sub TextBox1_Change() '''' Frame 1
    mia
    End Sub
    
    Sub mia() ''''' Frame 3
    Dim XX
    XX= InputBox(prompt:="1 - ghtgdyh:" & chr(13) & "2 - lpokiju:"&Chr(13),Title:="abarabanCiCiCoCo")
    Select case XX
    Case  1
    CommandButton1_Click
    Case  2
    TextBox11.SetFocus
    End Select
    End sub



  • di Germano data: 22/07/2013 21:51:21

    Ciao HB cosi e giusto ma non funziona
     
    Private Sub TextBox1_AfterUpdate() '''' Frame 1
    If TextBox1.value => 0 Then
    mia
    End If
    End Sub
    
    Sub mia() ''''' Frame 3
    Dim XX
    XX= InputBox(prompt:="1 - ghtgdyh:" & chr(13) & "2 - lpokiju:"&Chr(13),Title:="abarabanCiCiCoCo")
    Select case
    Case is 1
    CommandButton1_Click
    Case is 2
    TextBox11.SetFocus
    End Select
    End sub



  • di Germano data: 22/07/2013 21:53:12

    Ciao Max scusa ho visto pero non funziona lo stesso



  • di mabolsie data: 22/07/2013 21:58:13

    Non puoi allegare il file che ci rendiamo conto di cosa vuoi fare ?

    Ciao Max



  • di HarryBosch data: 22/07/2013 23:31:22

    Ok, c'è di mezzo anche un evento di uscita della textbox: al che non utilizzerei l'evento Change altrimenti ad ogni singola lettera digitata si attiva la macro.
    Puoi utilizzare l'evento Exit, in modo che, dopo aver compilato la Textbox, all'uscita (con Invio o Tab)
    si attivi l'input di inserimento.
    E' necessario impostare l'argomento Cancel=true altrimenti l'uscita dalla texbox ti porterebbe al tabindex successivo, che si trova all'interno dello stesso Frame.

    Se digiti 2 il Focus va alla textbox11: vedi esempio nel file allegato.

    Comunque sul SetFocus ci sono spesso alcuni problemini, e su questo punto mi sembra che neanche le guide Office siano molto affidabili.



  • di Germano data: 23/07/2013 00:41:51

    Grazie Harry funziona benissimo