Hej Jag ska göra ett program som ber användaren skriva in 3st tal. Jag skulle gjort om tal1, tal2, tal3 till en kontrollarray tal(0), tal(1), tal(2) och använt följande kod:hjälp med detta program
Programmet skall sedan visa medelvärdet av dessa tal i en resultatruta.
Programmet får bara innehålla EN textruta
Är medeltalen under 50 så skall rubriken på formuläret ändras
Är medeltalen 50-100 så skall bakrundsfärgen på formuläret ändras
Är slutligen medeltalet över 100 så skall storleken på formuläret ändras
Jag har gjort såhär, ja vet inte om det e rätt, men det har funkat till en viss gräns... nån som kan hjälpa mig?
Private Sub Form_Load()
tal1.Caption = InputBox("Skriv in ett tal", "Räknare") 'tal1 = boxen som poppar upp och det som står i () är frågan som ställs samt rubriken
tal2.Caption = InputBox("Ett till", "Räknare") 'tal2 = boxen som poppar upp och det som står i () är frågan som ställs samt rubriken
tal3.Caption = InputBox("Och slutligen ett till", "Räknare") 'tal3 = boxen som poppar upp och det som står i () är frågan som ställs samt rubriken
svar = Int(tal1) + Int(tal2) + Int(tal3) 'tal + tal2 + tal3 = svaret
txtresultat.Text = svar / Int(3) 'svaret / 3 ska skrivas ut i txtresultats fältet
End Sub
Private Sub txtresultat_Change()
Select Case txtresultat.Text 'startar case satsen
Case Is >= 50 'om medeltalet är över 50
frm.BackColor = &HFF& 'kommer bakrunden ändras till röd
Case Is <= 100 'om medeltalet är under 100
frm.BackColor = &HFF& 'kommer bakrunden ändras till röd
Case Is > 100 'är medeltalet över 100
frm.Width = 1000 'så blir bredden i storlek 1000
frm.Height = 3000 'så blir höjden i storlek 3000
Case Is < 50 'är medeltalet under 50
frm.Caption = "Räknare" 'så ändras formulär rubriken till räknare
End Select 'avslutar case satsen
End SubSv: hjälp med detta program
Option Explicit
Function NumericInputBox(Prompt, Optional Title, Optional Default, Optional XPos, Optional YPos, Optional HelpFile, Optional Context) As Double
Dim Reply As String
Do
Reply = InputBox(Prompt, Title, Default, XPos, YPos, HelpFile, Context)
If StrPtr(Reply) = 0 Then 'Cancel
Err.Raise vbObjectError, "NumericInputBox", "User canceled"
End If
Loop Until IsNumeric(Reply)
NumericInputBox = CDbl(Reply)
End Function
Private Sub Form_Load()
Dim I As Long
Dim Value As Double
Dim Sum As Double
Dim Captions As Variant
On Error GoTo Form_Load_Err
Captions = Array("första", "andra", "tredje")
For I = 0 To 2
Value = NumericInputBox("Skriv in " & Captions(I) & " talet", "Räknare", "0")
Tal(I).Caption = Value
Sum = Sum + Value
Next
txtresultat.Text = Sum / 3 'svaret / 3 ska skrivas ut i txtresultats fältet
Form_Load_Exit:
Exit Sub
Form_Load_Err:
Select Case Err.Number
Case vbObjectError
MsgBox "Användaren avbröt.", vbExclamation
Resume Form_Load_Exit
Case Else
MsgBox Err.Description, vbCritical, Err.Source
Resume Form_Load_Exit
End Select
End Sub
Private Sub txtresultat_Change()
Select Case txtresultat.Text 'startar case satsen
Case Is < 50 'är medeltalet under 50
Me.Caption = "Räknare" 'så ändras formulär rubriken till räknare
Case Is <= 100 'om medeltalet är under 50-100
Me.BackColor = &HFF& 'kommer bakrunden ändras till röd
Case Is > 100 'är medeltalet över 100
'så blir bredden i storlek 1000
'så blir höjden i storlek 3000
Me.Move Me.Left, _
Me.Top, _
1000, _
3000
End Select 'avslutar case satsen
End Sub