Controllare se abbiamo il PesoForma.  (01/05/03)

Un simpatico esercizio che ci aiuta a lavorare col VBA. Usiamo una UserForm, che faremo aprire sfruttando l'evento WorkBook_Open, dove inseriamo anche l'istruzione per ridurre ad icona Excel, in modo da vedere la nostra userform in primo piano.

Private Sub Workbook_Open()
Application.WindowState = xlMinimized
'per rendere a icona
UserForm1.Show 
'per aprire la userform
End Sub

 

Sulla UserForm inseriremo alcune Label (etichette), due TextBox ed un pulsante (CommandButton) che ci servirà per attivare le istruzioni sfruttando il suo evento Click. Inseriamo anche due OptionButton che selezioneremo a seconda dei casi (Maschio o Femmina), e che influenzano il tipo di risposta. Nelle istruzioni ci avvaliamo del construtto Select Case  ... End Select  per determinare cosa fare a secondo dell'OptionButton selezionata. Il funzionamento è semplice: inserendo nelle due TextBox il peso e l'altezza, otterremo col click sul pulsante lo sviluppo di questa formula che fornisce dei valori per valutare il rapporto peso/forma :

peso diviso il quadrato dell'altezza

In funzione del valore ottenuto si determina se tutto è Ok, o se siamo magri o grassi oppure obesi.

Cliccando sulla Label la cui Caption è : "Fattore di conversione", appare una MessageBox che mostra i rapporti, e sfrutteremo quindi l'evento Label_Click

Private Sub Label5_Click()
Dim Mytt As String
Mytt = Mytt & "Fattori di Rapporto " & vbLf & vbLf
Mytt = Mytt & "Da 20 a 24.9 = Peso Forma" & vbLf
Mytt = Mytt & "Da 25 a 29.9 = Sovrappeso" & vbLf
Mytt = Mytt & "Da 30 a 35 = Obesità" & vbLf
MsgBox Mytt
End Sub

In chiusura della Userform, cliccando sulla X di chiusura, sfruttiamo l'evento QueryClose e inseriremo le istruzioni per ripristinare Excel a schermo intero e contemporaneamente a chiuderlo:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Application.WindowState = xlMaximized
Application.Quit
End Sub

E queste sono le istruzioni inserite nel Click del CommandButton; non le commento perchè sono semplici, sono presenti due controlli per verificare che non ci si dimentichi le textbox vuote, e una serie di If..Then.., ElseIf...Then  che verificano il valore restituito dalla formula (variabile X) e in funzione di questo valore restituiscono nella Label3 una stringa che potrà essere variata a piacere, ovviamente controllate dal Select Case Options delle due OptionButton :

Private Sub CommandButton1_Click()
If TextBox1 = "" Then
Label3.Caption = "DEVI INSERIRE IL TUO PESO"
TextBox1.SetFocus
Exit Sub
End If
If TextBox2 = "" Then
Label3.Caption = "DEVI INSERIRE LA TUA ALTEZZA"
TextBox2.SetFocus
Exit Sub
End If
X = (Val(TextBox1) / (Val(TextBox2) * Val(TextBox2)))
Label4.Caption = Format(X, "###.00")


Select Case Options
Case OptionButton2
If X < 20 Then
Label3.Caption = "SEI UN FILUSSINO. STAI ATTENTO AI COLPI DI VENTO."
Label3.FontBold = True
Label3.ForeColor = vbRed
ElseIf X >= 20 And X <= 24.9 Then
Label3.Caption = "SEI IN PESO FORMA. COMPLIMENTI"
Label3.FontBold = True
Label3.ForeColor = vbMagenta
ElseIf X >= 25 And X <= 30 Then
Label3.Caption = "SEI SOVRAPPESO. COMINCIA A METTERTI A DIETA."
Label3.FontBold = True
Label3.ForeColor = vbBlue
ElseIf X >= 30.1 Then
Label3.Caption = "SEI OBESO. BUHHH!!!. HAI BISOGNO DI INTERVENIRE DRASTICAMENTE. TE LE VEDI LE PUNTE DELLE SCARPE ?"
Label3.FontBold = True
Label3.ForeColor = vbRed
End If
Case OptionButton1
If X < 20 Then
Label3.Caption = "SEI TROPPO MAGRA, STAI RISCHIANDO L'ANORESSIA"
Label3.FontBold = True
Label3.ForeColor = vbRed
ElseIf X >= 20 And X <= 24.9 Then
Label3.Caption = "SEI IN PESO FORMA. COMPLIMENTI"
Label3.FontBold = True
Label3.ForeColor = vbMagenta
ElseIf X >= 25 And X <= 30 Then
Label3.Caption = "SEI SOVRAPPESO. COMINCIA A METTERTI A DIETA."
Label3.FontBold = True
Label3.ForeColor = vbBlue
ElseIf X >= 30.1 Then
Label3.Caption = "SEI OBESA. BUHHH!!!. AI BISOGNO DI INTERVENIRE DRASTICAMENTE. TE LE VEDI LE PUNTE DELLE SCARPE ?"
Label3.FontBold = True
Label3.ForeColor = vbRed
End If
End Select
End Sub

 

File consultabile e scaricabile :  Peso Forma.zip   12 Kb  Versione per XP
 

Buon lavoro.


prelevato sul sito http://ennius.interfree.it