ho creato un programma che permette di eseguire calcoli a seconda di due scelte presenti in un ComboBox e a seconda di valori che possono essere di default o inseriti dall'utente; il problema è che in entrambi casi, all'evento click del pulsante simula che nel mio caso è Command1, sia facendo eseguire il calcolo con i valori di default che con i valori dell'utente che esegue il programmino il risultato di output è lo stesso.

ho più o meno capito che è un problema di due variabili "att" e "amp", ma non ho capito il motivo di questo problema dato che il codice mi sembra corretto.


ecco il codice:



Option Explicit
Dim flag As Integer

Private Sub automaticset_Click()
flag = 0
End Sub

Private Sub Command1_Click()

'---INIZIO Dichiarazione Variabili---
Dim emediocst As Double
Dim sarcst As Double
Dim k As Double
Dim pcst As Double
Dim a As Double
Dim b As Double
Dim emediomis As Double
Dim pgenmisdbm As Double
Dim att As Double
Dim amp As Double
Dim pmisdbm As Double
Dim pmisw As Double
Dim pvera As Double
Dim pveramw As Double
Dim pgeneratoredbm As Double
Dim campo As Double
Dim pindbm As Double
Dim sar As Double

'---FINE Dichiarazione Variabili---

If Combo1.ListIndex = -1 Then
MsgBox "Non sono ammessi valori di SAR nullo", vbInformation, "SAR"
Exit Sub
End If

If Combo1.Text = Combo1.List(0) And flag = 0 Then

'---INIZIO Assegnazione Variabili---
emediocst = 87.52
sarcst = 0.638
k = 1.2
pcst = 0.5
a = emediocst / Sqr(pcst)
emediomis = 1
pgenmisdbm = -20.5
att = 2.6
amp = 35
'---FINE Assegnazione Variabili---

End If

If Combo1.Text = Combo1.List(0) And flag = 1 Then

'---INIZIO Assegnazione Variabili---
emediocst = 87.52
sarcst = 0.638
k = 1.2
pcst = 0.5
a = emediocst / Sqr(pcst)
emediomis = 1
pgenmisdbm = -20.5
att = CDbl(Text8.Text)
amp = CDbl(Text9.Text)

'---FINE Assegnazione Variabili---

End If

If Combo1.Text = Combo1.List(1) And flag = 0 Then

'---INIZIO Assegnazione Variabili---
emediocst = 90.72
sarcst = 0.079
k = 0.158
pcst = 0.5
a = emediocst / Sqr(pcst)
emediomis = 30.92
pgenmisdbm = -20.5
att = 1.8
amp = 41
'---FINE Assegnazione Variabili---

End If

If Combo1.Text = Combo1.List(1) And flag = 1 Then

'---INIZIO Assegnazione Variabili---
emediocst = 87.52
sarcst = 0.638
k = 1.2
pcst = 0.5
a = emediocst / Sqr(pcst)
emediomis = 1
pgenmisdbm = -20.5
att = CDbl(Text4.Text)
amp = CDbl(Text5.Text)

'---FINE Assegnazione Variabili---

End If

'---INIZIO Calcola i valori ---
pmisdbm = pgenmisdbm - att + amp
pmisw = 10 ^ (pmisdbm / 10) / 1000
b = emediomis / Sqr(pmisw)
sar = CDbl(Text1.Text)
pvera = sar * (a ^ 2 / b ^ 2) / k
pveramw = pvera * 1000
pindbm = 10 * Log(pveramw) / Log(10)
pgeneratoredbm = pindbm + att - amp
campo = b * Sqr(pvera)
Label7.Caption = pgeneratoredbm
Label8.Caption = campo
'--- FINE Calcola i valori ---
End Sub

Private Sub Command2_Click()
Unload Me
End Sub

Private Sub Command3_Click()
flag = 1
End Sub

Private Sub Form_Load()
Combo1.AddItem "1800", 0
Combo1.AddItem "900", 1
flag = 0
Frame3.Visible = False
End Sub

Private Sub Label12_Click()
End Sub

Private Sub guide_Click()
Form2.Show
End Sub

Private Sub manualset_Click()
Frame3.Visible = True
End Sub

fatemi sapere, è urgente