Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

USERFORM FOCUS

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

USERFORM FOCUS

Postdi christianghz » 10/05/18 16:40

Ciao a tutti
ho una userform con una textbox (dove sparo dei codici a barre) e un command button.
Sulla userform gira questo codice (che ho semplificato):

Codice: Seleziona tutto
Private Sub TextBox1_Change()

'quando il codice è di 16 cifre lo inserisce in elenco  e svuota la textbox
If Len(TextBox1.Value) = 22 Then
code = TextBox1.Value

 
With sh1
   
        URiga = .Cells(Rows.Count, 1).End(xlUp).Row
        sh1.Range("A" & URiga + 1).Value = code
        sh1.Range("B" & URiga + 1).Value = Format(Now, "dd-mm-yyyy") 'oggi
        sh1.Range("C" & URiga + 1).Value = Format(Time, "hh:mm:ss")
       
        TextBox1.Value = ""
code = ""
End With
End If

UserForm1.TextBox1.SetFocus

End Sub


il problema è che, quando sparo il barcode, il focus si sposta sul command button, impedendomi di sparare il successivo barcode.
NB: facendo ctrl+c ctrl+v del codice barcode da tastiera il problema invece non si pone, il focus e il cursore restano sempre sulla textbox.


Ho già provato a usare UserForm1.TextBox1.SetFocus
e anche come letto su qualche forum americano:
Application.SendKeys "{TAB}"
'Application.SendKeys "{ENTER}"

ma non funzionano, il command button rimane sempre in focus (coi puntini di selezione attorno)
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58

Sponsor
 

Re: USERFORM FOCUS

Postdi Anthony47 » 10/05/18 23:39

Devo immaginare che l'ultimo carattere nel barcode sia l'equivalente di un Enter, seno' non capisco come fa il Textbox a perdere il focus.
Quindi il mio suggerimento e' che abbandoni l'uso del TextBox1_Change e passi al TextBox1_Exit, che ha al suo interno la possibilita' di evitare la perdita del focus. Del tipo:
Codice: Seleziona tutto
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'qui le istruzioni per
'caricare il contenuto del textbox
'sul foglio di lavoro
TextBox1.Value = ""
Cancel = True
End Sub

Questo ovviamente presuppone che non esista nessun altro controllo sulla userform che abbia bisogno di ottenere il focus, ma da quel che ho capito esiste solo il commandubutton.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: USERFORM FOCUS

Postdi christianghz » 14/05/18 15:58

Grazie Anthony,
funziona perfettamente!
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58


Torna a Applicazioni Office Windows


Topic correlati a "USERFORM FOCUS":


Chi c’è in linea

Visitano il forum: Nessuno e 31 ospiti

cron