Vi ringrazio per il chiarimento, Flash30005 & Anthony47, e per il benvenuto..
@Flash30005 :
ho inserito il tuo codice e funziona benissimo.. mi sembra molto piú elegante e professionale di tutte quelle righe che avevo inserito io..
@Anthony47 :
peró se non ho inteso male, al sostituire un controllo o invertire l'ordine di quelli esistenti, basterebbe rinominarli rispettando la progressione che c'é adesso nello UserForm.. é corretto?
Adesso vorrei proporre un altro quesito, sempre inerente lo stesso UserForm:
alcuni TextBox richiedono l'immissione di dati che potrebbero essere giá stati inseriti in precedenza per altri libri (es.: Autor, Editor, Proveedor, ecc.). (lo spagnolo é perché vivo in Argentina
)
Pensavo quindi di creare un "Foglio_Dati" dove immetto in colonne questi dati, dando, nel 'RowSource' del Control, l'opportuna referenza. Ho quindi creato i miei ComboBox..
Primo quesito : ho capito male o il ComboBox mi da la possibilitá di aggiungere anche un dato che non sia ancora presente nella sua lista? (ho giá impostato nel RowSource un range che contiene giá delle celle vuote proprio per questo scopo). Se questo é vero, la volta successiva il ComboBox mi presenterá una lista aggiornata col mio nuovo dato, esatto?
Secondo quesito : nel codice di Flash30005 vedo che sono considerati i soli TextBox (If TypeOf ctr Is MSForms.TextBox...); quindi ho pensato di aggiungere un ComboBox al lato dei TextBox per i quali l'immissione si fa da una lista, volendo poi creare una istruzione opportuna per il TextBox che impedisca la digitazione e che assegni il suo valore uguale alla scelta fatta nella lista del ComboBox.
Non ho peró idea di come impedire di scrivere nel TextBox.
Terzo quesito
...posso?
Volendo strafare.. mi sono detto.. "Inizializzo lo UserForm con tutte le ComboBox.Visible = False e al GotFocus di ciascun TextBox le faccio apparire"..
Private Sub UserForm_Initialize()
ComboBox1.Visible = False
ComboBox2.Visible = False
ListBox1.Visible = False
End Sub
e poi quindi, per esempio...
Private Sub TextBox3_GotFocus()
ComboBox1.Visible
Set TextBox3.Value = ComboBox1.Value
End Sub
ma sembra che non gli piaccia la mia istruzione.. a questo punto mi sa che non ho capito come si assegna il Focus; pensavo che quando il cursore si sposta su un TextBox questi ne riceve il Focus, ma non deve essere cosí.. Il mio ComboBox1 resta invisibile..
Come faccio?
É possibile fare tutto ció che ho esposto?
Grazie a tutti per la pazienza e scusate la lungaggine..
Rael