VBA Taschenrechner mit Listbox

Ok, ich teste hier mit den UserForms von Excel. Wenn du nicht aktueller als Word/Office 2000 bist, dann stelle die Datei mal hier rein.

Könnte einen anderen Grund haben den ich so jetzt nicht finde.
 
Ok also das mit den Klammern funtzt in Excel
war wol das problem...

aber die Zahlen werden immernoch vom Display gelöscht wenn man einen Operator drückt...
 
Dann steht bei "+", "-", "*" und/oder "/" irgendwo noch lblErgebnis.Caption = "" drin wo es nicht hingehört.

Bei mir klappt es so:

Visual Basic:
Private Sub cbMal_Click()
'zuerst die Zahl übernehmen
ReDim Preserve wert(UBound(wert) + 1)
wert(UBound(wert)) = lblErgebnis.Caption
'dann dieses Zeichen
ReDim Preserve wert(UBound(wert) + 1)
wert(UBound(wert)) = "*"
clear = True
End Sub
 
So der Rechner ist nun für mich fertig.. danke dir für alles :)

jetzt wollte ich di
ch mal fragen ob du irgend ne HP kennst wo folgende befehle beschrieben sind da wir das VBA programm noch dokumentieren müssen:

art(a% - 1) vorallem das a% - 1
zahl(UBound(zahl)) = lblErgebnis.Caption vorallem UBound

oder kannst du mir diese kurz und bündig beschreiben was diese befehle genau machen
 
Also die UBound Anweisung sollte in der Excel Hilfe beschrieben sein, aber egal.

Normalerweise ist ein Array mit einer bestimmten "Größe" definiert.

Visual Basic:
Dim variable(5)

Mit Redim kann es neu dimensioniert und die Größe verändert werden. Nimmt man dann noch Preserve dazu, bleiben die bereits im Array enthaltenen Werte erhalten.

Visual Basic:
'zuerst ohne Wert deklarieren
Dim variable()
'neue Dimension festlegen, Werte gehen verloren
Redim variable(5)
'nochmal neue Dimension, Werte bleiben erhalten
Redim Preserve variable(10)


Mit a% -1 wird einfach der Zeiger des Arrays entsprechend verändert.
 
Hey

Habe doch noch ein Problem beim Calc

Die Rechen weise mit einer Division durch 0 ist ja Unzulässig,,, wie kann ich diese mit einer MSG box erläutern und den Sub dann verlassen ?

ansonsten will er das immer Debuggen

Danke ;)
 
Wenn du keine gezielte Fehlerbehandlung willst, kannst du es so lösen

Visual Basic:
Sub irgendwas()
On Error Goto fehler
'hier der eigentliche Code
Exit Sub
fehler:
MsgBox Err.Description
End Sub

Diesen Code trägst du überall dort ein wo eventuell Fehler entsehen können. Wenn du bestimmte Fehler besonders behandeln willst, kannst du in einem IF-Block prüfen welcher Fehler aufgetreten ist indem du Err.Number prüfst.
 
Hey, Wollte dich mal noch fragen was er hier genau macht:

Private Sub cbGleich_Click()
'Zahl übernehmen und eintragen
ReDim Preserve zahl(UBound(zahl) + 1)
zahl(UBound(zahl)) = lblErgebnis.Caption

For a% = 1 To UBound(zahl)
formel = formel & zahl(a%)
Next a%

Vorallem die For Next schlaufe versteh ich ned :) Fals der Lehrer fragt
 
Zurück