› Sviluppare funzionalita su Microsoft Office con VBA › Problema di SetFocus e Exit nelle Textbox (ActiveX)
-
AutoreArticoli
-
Ciao a tutti,
utilizzo il VBA di Excel 2007 (s.o. Windows 10), e non riesco a gestire il focus sugli oggetti (controlli ActiveX) che uso, in particolare le Textbox. Se scrivo istruzioni tipo "Textbox1.SetFocus" mi dà puntualmente errore (di run-time 438: proprietà o metodo non supportati dall'oggetto). L'istruzione "Setfocus" non appare nell'elenco che si apre in automatico mentre si digita "Textbox.", mentre ne compaiono molte altre. Inoltre, non compare, sempre per le Textbox, la scelta della routine Exit (ci sono Change, Dblclick, ecc, ma Exit no).
Vi chiedo, con umiltà perché non sono certo un grande conoscitore del VBA, un aiuto per poter sistemare le cose. Forse sbaglio in qualcosa di basilare che mi sfugge, oppure serve di installare qualcosa in più che non so...?
Tra l'altro, la cosa si presenta anche su un altro PC (sempre con Office 2007 e Windows 10), ma anche installando Office 2016 le cose non cambiano!
Grazie a chiunque voglia aiutarmi!
Allega file di esempio con il codice che ti dà errore.
A me questo codice
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) MsgBox "Ciao" End Subfunziona perfettamente.
Come pure funziona questo
Private Sub UserForm_Initialize() Me.TextBox2.SetFocus End SubAlfredo
Allego un file con l'esempio piu' banale del mondo: se la TextBox non contiene nulla, premendo il pulsante ho il msg "NO" da MessageBox, altrimenti ho "OK".
Il mio quesito è: quando chiudo la MessageBox, vorrei poter avere il controllo sulla TextBox, ovvero vorrei essere nella situazione di poterci già scrivere senza dover posizionarmici con mouse o tab. Senza ulteriori istruzioni, infatti, il controllo non sta né su TB, né sul pulsante. Mettendo nel listato del pulsante l'istruzione, che dovrebbe funzionare, "TextBox1.SetFocus" ottengo errore 438 - proprietà o metodo non supportati, che potete verificare.Grazie
Allegati:
You must be logged in to view attached files.prova cosi
Private Sub CommandButton1_Click() If TextBox1.Value <> "" Then MsgBox ("OK") Else MsgBox ("NO") End If TextBox1.Text = "" TextBox1.Activate End Sub
Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )Gentilissimo Albatros54, sembra che funzioni!!
Chissà perché il SetFocus non vuol saperne...
Saluti e grazie molte!!
Ciao
Come ti è stato detto in altro Forum (1), il controllo TextBox non ha la proprietà SetFocus.
Puoi usare TexstBox.Activate
Ciao,
Mario
(1) http://www.pc-facile.com/forum/viewtopic.php?f=26&t=111171
-
AutoreArticoli
