Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Sol39,
chiedo un vostro aiuto per poter risolvere questo mio problema.
Spiego:
in un file excel, in sheet1, è presente un pulsante che mi apre una userform;
in questa userform sono presenti 2 option button (optionbutton1 e optionbutton2);
al click di uno dei due si apre in automatico la userform2 (se si clicca optionbutton1 si apre la userform2, ugualmente avviene se si clicca optionbutton2);
qui avviene il problema..
nella seconda userform ho 5 textbox (text1, text2, text3, text4, text5);
se clicco optionbutton1, si apre l'userform2 e la text1 la text2 e la text3 sono sbloccate (in modo da poter scrivere)..mentre le text4 e la text5 bloccate (in modo da non scrivere nulla all'interno);
se clicco optionbutton2, si apre l'userform2 e la text1 la text2 e la text3 sono bloccate (in modo da non poter scrivere)..mentre le text4 e la text5 sbloccate (in modo da poter scrivere);
Ho provato in questo modo, ma non funziona:
Private Sub OptionButton1_Click()
If OptionButton1 = True Then
UserForm2.Show
TextBox1.Enabled = True
TextBox2.Enabled = True
TextBox3.Enabled = True
TextBox4.Enabled = False
TextBox5.Enabled = False
End If
End Sub
Private Sub OptionButton2_Click()
If OptionButton2 = True Then
UserForm2.Show
TextBox1.Enabled = False
TextBox2.Enabled = False
TextBox3.Enabled = False
TextBox4.Enabled = True
TextBox5.Enabled = True
End If
End Sub
Come posso risolvere?
In cima ad un modulo di codice standard incolla:
'========>>
Option Explicit
Public myOption As Long
'-------->>
Public Sub ShowForm()
UserForm1.Show vbModeless
End Sub
'<<========
Nel modulo di codice della prima Userform, incolla:
'========>>
Option Explicit
'-------->>
Private Sub UserForm_Initialize()
myOption = 0
End Sub
'-------->>
Private Sub OptionButton1_Click()
If OptionButton1 = True Then
myOption = 1
End If
UserForm2.Show
End Sub
'-------->>
Private Sub OptionButton2_Click()
If OptionButton2 = True Then
myOption = 2
End If
UserForm2.Show
End Sub
'<<========
Nel modu;lo di codice della seconda Userform, incolla il seguente codice:
'========>>
Option Explicit
'-------->>
Private Sub UserForm_Initialize()
With Me
Select Case myOption
Case 1
.TextBox1.Enabled = True
.TextBox2.Enabled = True
.TextBox3.Enabled = True
.TextBox4.Enabled = False
.TextBox5.Enabled = False
Case 2
.TextBox1.Enabled = False
.TextBox2.Enabled = False
.TextBox3.Enabled = True
.TextBox4.Enabled = True
.TextBox5.Enabled = True
End Select
End With
End Sub
'<<========
Potresti scaricare il mio file di prova Sol20201112.xlsm
===
Regtards,
Norman