maurogsc.eu
|
![]() |
home ==> Excel: come fare per ==> UserForm: ciclare controlli in un Frame
UserForm: ciclare controlli in un Frame
- VBA
NOTA. La soluzione ed il codice sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dal codice o dalla soluzione proposta se usati impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare il codice o la soluzione in files importanti.
1 - Se volessimo controllare quale OptionButton e quali CheckButton sono stati selezionati, questo è il modo peggiore di disporre i controlli sulla UserForm :
2 - Molto meglio utilizzare due controlli Frame e dividere OptionButton e CheckBox in questo modo:
3 - Diventa facile conoscere quale dei controlli è selezionato(ha Value = True), semplicemente ciclando separatamente i controlli presenti nei due Frame. Il codice qui sotto si riferisce ad una UserForm uguale all'immagine al punto 2 ed è relativo all'evento Click del CommandButton1. Per ogni Frame verranno mostrati in una MsgBox i controlli OptionButton o CheckBox selezionati:
Private Sub CommandButton1_Click()
Dim ctrl As Control
Dim s As String
With Me
s = ""
'ciclo i controlli del Frame1
For Each ctrl In .Frame1.Controls
If ctrl.Value = True Then
s = s & ctrl.Name & vbNewLine
End If
Next
MsgBox "Selezionati ne Frame1:" & vbNewLine & s
s = ""
'ciclo i controlli del Frame2
For Each ctrl In .Frame2.Controls
If ctrl.Value = True Then
s = s & ctrl.Name & vbNewLine
End If
Next
MsgBox "Selezionati ne Frame2:" & vbNewLine & s
End With
Set ctrl = Nothing
End Sub
Per ulteriori informazioni su Microsoft Excel ed il suo Visual Basic, utilizzate questo
forum:
http://social.answers.microsoft.com/Forums/it-IT/officeexcelit/threads
Ultimo aggiornamento di questa pagina: 13/12/2010 - mauro gamberini