|
| Autor |
Nachricht |
BaSh Newbie

Anmeldedatum: 16.08.2011 Beiträge: 3
|
Zusammenrechnen
Verfasst am: 16.08.2011, 20:45 |
|
|
Hi ich versuche grade ein simples Programm zu coden das 2 werte zusammen rechnet.
nur leider nimmt er die werte aus den textboxen an.
Private Sub Command1_Click()
MsgBox = Val(Text1.Text) + Val(Text2.Text)
End Sub
das sollte doch normal funktionieren?
so hab das ganze jetzt umgebaut das alles nur in textboxen abläuft
Private Sub Command1_Click()
Text5.Text = Val(Text2.Text) / 60
Text4.Text = Val(Text1.Text) / 9
Text3.Text = Val(Text4.Text) + Val(Text5.Text)
Text6.Text = Math.Round(Text3.Text, 2)
End Sub
so nächstes problem er zählt nur die zahlen vor dem komma zusammen und ignoriert die nach komma stellen... |
|
| |
|
 |
guido65 Newbie

Anmeldedatum: 09.05.2011 Beiträge: 10 Wohnort: Belgien
|
Verfasst am: 17.08.2011, 07:27 |
|
|
Hi BaSh,
es ist normal dass du die Dezimalstellen verlierst weil der Befehl Val(Text1.Text) den Wert
aus dem Text nimmt und ihn auf die nächste ganze Zahl aufrundet.
Besser ist es im Single-Format zu rechnen, da dieses Format auch Dezimalstellen verarbeitet.
| Code: |
Private Sub Command1_Click()
Text5.Text = CSng(Text2.Text) / 60
Text4.Text = CSng(Text1.Text) / 9
Text3.Text = CSng(Text4.Text) + CSng(Text5.Text)
Text6.Text = Math.Round(Text3.Text, 2)
End Sub
|
Der Befehl "CSng" wandelt hier den Wert des Textes ins Single-Fomat unter beibehaltung der Dezimalstellen.
Gruß
Guido |
|
| |
|
 |
BaSh Newbie

Anmeldedatum: 16.08.2011 Beiträge: 3
|
Verfasst am: 17.08.2011, 09:08 |
|
|
achso dann schonmal vielen dank werd es nachher zuhause mal ausprobieren. hab aber gleich noch ne frage: wie mache ich das wenn ich in die textbox eine zahl eingeben will, der Text der bereits in der Textbox steht verschwindet ?
geht das irgendwie mit "Clear" |
|
| |
|
 |
guido65 Newbie

Anmeldedatum: 09.05.2011 Beiträge: 10 Wohnort: Belgien
|
Verfasst am: 17.08.2011, 09:32 |
|
|
Hallo,
Du kannst folgendes machen:
| Code: |
Private Sub Text1_GotFocus()
Text1.Text = ""
End Sub
|
Damit wird der Text in der TextBox gelöscht, sobald die TextBox den Focus bekommt um eine neue Zahl einzugeben.
Gruß |
|
| |
|
 |
BaSh Newbie

Anmeldedatum: 16.08.2011 Beiträge: 3
|
Verfasst am: 17.08.2011, 19:37 |
|
|
so erstmal vielen dank klappt alles wunderbar aber warum ist jetzt text1 automatisch immer im focus sobald die anwendung geöffnet wird ? d.h. der text von text 1 ist automatisch weg...
Private Sub Command1_Click()
Text5.Text = CSng(Text2.Text) / 60
Text4.Text = CSng(Text1.Text) / 9
Text3.Text = CSng(Text4.Text) + CSng(Text5.Text)
Text6.Text = Math.Round(Text3.Text)
End Sub
Private Sub Text1_gotfocus()
Text1.Text = ""
End Sub
Private Sub Text2_gotfocus()
Text2.Text = ""
End Sub |
|
| |
|
 |
guido65 Newbie

Anmeldedatum: 09.05.2011 Beiträge: 10 Wohnort: Belgien
|
Verfasst am: 18.08.2011, 02:40 |
|
|
Hallo BaSh,
Das die TextBox1 automatisch den Focus erhält, liegt an der Eigenschaft "TabIndex".
Wenn eine Anwendung startet, wird automatisch der Focus auf das Element mit dem kleinsten TabIndex gesetzt.
Du kannst zb. dem "Command1" einen TabIndex von "0" geben und somit erhält der Button den Focus beim Start.
Die TextBox1 wird dann nicht mehr automatisch aktiviert und löscht somit auch nicht mehr den Text.
Gruß
Guido |
|
| |
|
 |