Invio su TextBox1 SetFocus su TextBox1



  • Invio su TextBox1: SetFocus su TextBox1
    di beppexile data: 30/09/2016 14:56:59

    Salve ragazzi, ormai è segno del destino che mi devo perdere sempre in cavolate.

    Veniamo subito al dunque, ho allegato un file con una userform, una textbox, un tasto e una listbox

    scrivendo un valore sulla TB e premendo il tasto, questo viene caricato sulla listbox; e fin qui tutto regolare.

    Per evitare un doppio invio (invio sulla textbox per passare il focus al tasto e invio sul tasto per inserire il valore nella listbox), ho ben pensato di sfruttare l'evento keydown della textbox per eseguire le stesse operazioni del tasto, solo che perdo il focus e non capisco come mai.

    Come posso fare, dopo l'invio sulla textbox a portare il focus nuovamente sulla stessa textbox?
    In pratica, vorrei eliminare il tasto e automatizzare l'inserimento dati dalla textbox alla listbox solo tramite invio.

    Grazie a tutti



  • di Albatros54 data: 30/09/2016 16:46:32

    prova il codice sotto 
     
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    ListBox1.AddItem TextBox1.Value
    TextBox1.Value = ""
       If TextBox1.Value = "" Then
        Cancel = True
        TextBox1.SetFocus
        End If
        
    End Sub






  • di scossa data: 30/09/2016 20:05:06

    Ciao Albatros,

    cit.: "TextBox1.Value = ""
    If TextBox1.Value = "" Then
    "

    che senso ha quell'If, visto che con l'istruzione precedente hai assegnato proprio "" al TextBox?



    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.
    (George Bernard Shaw)



  • di Albatros54 data: 01/10/2016 08:40:26


    Ciao scossa

    cit.: "TextBox1.Value = ""
    If TextBox1.Value = "" Then"


    Effettivamente è come dici tu , meglio toglierla.
    Ciao
     
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    ListBox1.AddItem TextBox1.Value
    TextBox1.Value = ""
           Cancel = True
        TextBox1.SetFocus
    End Sub






  • di beppexile data: 03/10/2016 10:49:21

    Grazie ragazzi, adesso funziona.

    Avevo già provato ad usare il cancel nell'evento exit, ma evidentemente ho sbagliato ad applicarlo visto che non mi funzionava.

    Peccato che non ho più il codice che avevo scritto per confrontarlo, ma ad occhio mi sembra uguale.

    L'importante è aver risolto. Grazie.