Taschenrechner mit Visual Basic

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • Taschenrechner mit Visual Basic

      Hi an alle. ich mache gerade ein Praktikum als Fachinformatiker. Ich hab heut damit anfangen müssen, einen taschenrechner mit visual basic zu programmieren. ich hab schon ein bisschen erfahrung in dem programm.
      ich hab jetz mal angefangen mit dem aussehen, und hab den tasten schon funktionen hinzugefügt. also, dass wenn man z.b. auf 1 klickt, dass es in einem textfeld auch 1 hinschreibt, usw. und jetz hab ich leider keine ahnung, wie man den taschenrechner dazu bringt, dass er sich die zahlen merkt und, dass er es auch noch ausrechnet. wär echt nett, wenn mir jemand helfen könnte
      ps: es reicht, wenn die Addition funktioniert

      so sieht mein taschenrechner aus:
      [Blockierte Grafik: http://img44.imageshack.us/img44/3421/19574903.jpg]

      und so sieht mein Quelltext bis jetzt aus:
      Private Sub cb_g_Click() 'teilen zeichen

      End Sub

      Private Sub cb_i_Click() '"Ist gleich" zeichen

      End Sub

      Private Sub cb_m_Click() 'mal zeichen

      End Sub

      Private Sub cb_mi_Click() 'minus zeichen

      End Sub

      Private Sub cb_p_Click() 'plus zeichen

      End Sub

      Private Sub cb0_Click() 'Ziffer 0
      Label1.Caption = 0
      End Sub

      Private Sub cb1_Click() 'Ziffer 1
      Label1.Caption = 1
      End Sub

      Private Sub cb2_Click() 'Ziffer 2
      Label1.Caption = 2
      End Sub

      Private Sub cb3_Click() 'Ziffer 3
      Label1.Caption = 3
      End Sub

      Private Sub cb4_Click() 'Ziffer 4
      Label1.Caption = 4
      End Sub

      Private Sub cb5_Click() 'Ziffer 5
      Label1.Caption = 5
      End Sub

      Private Sub cb6_Click() 'Ziffer 6
      Label1.Caption = 6
      End Sub

      Private Sub cb7_Click() 'Ziffer 7
      Label1.Caption = 7
      End Sub

      Private Sub cb8_Click() 'Ziffer 8
      Label1.Caption = 8
      End Sub

      Private Sub cb9_Click() 'Ziffer 9
      Label1.Caption = 9
      End Sub

      Private Sub Label1_Click() 'Textfeld

      End Sub

      bitte ich brauch hilfe...
      danke schonmal im vorraus
    • Hallo Tequila99,

      da ich mit meinem neuen Laptop Vista fahre ist mir der Zugang zu Visual Basic 6 leider nicht mehr möglich.

      Habe das Problem mir mal unter VBA durch den Kopf gehen lassen und für eine einfache Addition folgen Code durchgespielt (funktioniert musst Du aber auf Deinen Code anpassen).

      Wie gewünscht ein Beispiel für die Addition von zwei Zahlen.

      ' ------------------------------------------------------------------
      Dim ZahlMerker As Integer ' wird benötigt um die 1.Zahl zu merken
      Dim RechMerker As String ' wird benötigt um die Rechenart zu merken
      ' ------------------------------------------------------------------
      Private Sub cmd3_Click()
      lbl1.Caption = "3"
      End Sub
      ' ---------------------------------------------------------
      Private Sub cmd1_Click()
      lbl1.Caption = "1"
      End Sub
      ' ---------------------------------------------------------
      Private Sub cmd2_Click()
      lbl1.Caption = "2"
      End Sub
      ' ---------------------------------------------------------
      Private Sub cmd4_Click()
      lbl1.Caption = "4"
      End Sub
      ' ---------------------------------------------------------
      Private Sub cmd5_Click()
      lbl1.Caption = "5"
      End Sub
      ' ---------------------------------------------------------
      Private Sub cmd6_Click()
      lbl1.Caption = "6"
      End Sub
      ' ---------------------------------------------------------
      Private Sub cmd7_Click()
      lbl1.Caption = "7"
      End Sub
      ' ---------------------------------------------------------
      Private Sub cmd8_Click()
      lbl1.Caption = "8"
      End Sub
      ' ---------------------------------------------------------
      Private Sub cmd9_Click()
      lbl1.Caption = "9"
      End Sub
      ' ---------------------------------------------------------
      Private Sub cmdGleich_Click()
      Select Case RechMerker
      Case "+"
      lbl1.Caption = ZahlMerker + Val(lbl1.Caption)
      End Select
      End Sub
      ' ---------------------------------------------------------
      Private Sub cmdplus_Click()
      ZahlMerker = Val(lbl1.Caption)
      RechMerker = "+"
      lbl1.Caption = ""
      End Sub


      Wenn ich Dir damit helfen konnte, bitte schön.

      Gruß
      Sascha
      Wer ein Problem erkennt, und nichts zu seiner Beseitigung unternimmt, der ist möglicherweise ein Teil dieses Problems.:D
    • Hallo liebe Community :p

      Erstmal ein Nasenrümpfer :evil:

      Dein Vorgestellter Code ist als solcher nicht vorhanden,schöner wäre es gewesen wenn du einen Ansatz fomuliert hättest und zur Ergänzung dann in einem Forum fragst !

      Hier mal ein Ansatz mit Excel 2000 VB,du weisst das das ein größeres Projekt ist und mindestens 1-2 Tage intensivste Arbeit erfordert(bei Profis) :?:

      Habe jetzt schon festgestellt das die Fehlerroutine das größte Modul sein wird.

      Liebe Grüße euer Tanto :p

      Meine Idee dazu war, Zahlen wie Operanden jeweils zu Isolieren und in ein Array zu legen,beachte aber das Operanden auch vorangestellt werden dürfen,habe aber weitere Arbeit eingestellt,ist zu umfangreich ;-)

      Quellcode

      1. Sub Gleich()
      2. ReDim DatZahlen(0) As String
      3. ReDim DatOP(0) As String
      4. 'prüfung auf falsche zeichen,auf mehrfache fehlt noch
      5. For Zeichen = 1 To Len(Cells(4, 4))
      6. If Mid(Cells(4, 4), Zeichen, 1) Like "0-9+-*/" = True Then
      7. Lager = Lager + Cells(4, 4)
      8. End If
      9. Next Zeichen
      10. For Zeichen = 1 To Len(Cells(4, 4))
      11. 'Zahlen Isolieren
      12. If Mid(Cells(4, 4), Zeichen, 1) Like "0-9" = True Then
      13. DatZahlIndex = DatZahlIndex + 1
      14. ReDim Preserve DatZahlen(DatZahlIndex)
      15. DatZahlen(DatZahlIndex) = Mid(Cells(4, 4), Zeichen, 1)
      16. End If
      17. 'Operanden Isolieren
      18. If Mid(Cells(4, 4), Zeichen, 1) Like "+-*/" = True Then
      19. DatOpIndex = DatOpIndex + 1
      20. ReDim Preserve DatOP(DatOpIndex)
      21. DatOP(DatOpIndex) = Mid(Cells(4, 4), Zeichen, 1)
      22. End If
      23. Next Zeichen
      24. For Zzahl = 1 To UBound(DatZahlen())
      25. 'hier sollten jetzt die Felder miteinander Operieren
      26. Next Zzahl
      27. End Sub
      Alles anzeigen

      Quellcode

      1. Sub Plus()
      2. Cells(4, 4) = Cells(4, 4) & "+"
      3. End Sub

      Quellcode

      1. Sub Minus()
      2. Cells(4, 4) = Cells(4, 4) & "-"
      3. End Sub

      Quellcode

      1. Sub Mal()
      2. Cells(4, 4) = Cells(4, 4) & "*"
      3. End Sub

      Quellcode

      1. Sub Geteilt()
      2. Cells(4, 4) = Cells(4, 4) & "/"
      3. End Sub


      Noch einige Gedankengänge :-D

      On Error Goto ErrorHandler/Über Functionen auslagern :-)

      Operanden können vor/hinter angestellt sein(nicht vergessen) :cry:

      Erstelle dir eine Liste mit möglichen Fehlern um gegebenenfalls zu korrigieren 8O

      Vorrangig sind Einschränkungen statt Korrigierung ;-)

      Viel spass bei dem Projekt :lol:
    • ich möchte gern noch, dass der taschenrechner minus, mal, geteilt kann, ich möchte dafür aber nicht gleich einen ganz neuen code schreiben, sonder die funktion einfach hinzufügen.
      so sieht es im moment aus

      Quellcode

      1. Dim ZahlMerker As String
      2. Dim RechMerker As String
      3. Dim Zahl1 As Double
      4. Private Sub cb_0_Click() 'button 0
      5. If ZahlMerker <> "" Then
      6. ZahlMerker = ZahlMerker & "0"
      7. Label1.Caption = ZahlMerker
      8. End If
      9. End Sub
      10. Private Sub cb_1_Click() 'button 1
      11. ZahlMerker = ZahlMerker & "1"
      12. Label1.Caption = ZahlMerker
      13. End Sub
      14. Private Sub cb_2_Click() 'button 2
      15. ZahlMerker = ZahlMerker & "2"
      16. Label1.Caption = ZahlMerker
      17. End Sub
      18. Private Sub cb_3_Click() 'button 3
      19. ZahlMerker = ZahlMerker & "3"
      20. Label1.Caption = ZahlMerker
      21. End Sub
      22. Private Sub cb_4_Click() 'button 4
      23. ZahlMerker = ZahlMerker & "4"
      24. Label1.Caption = ZahlMerker
      25. End Sub
      26. Private Sub cb_5_Click() 'button 5
      27. ZahlMerker = ZahlMerker & "5"
      28. Label1.Caption = ZahlMerker
      29. End Sub
      30. Private Sub cb_6_Click() 'button 6
      31. ZahlMerker = ZahlMerker & "6"
      32. Label1.Caption = ZahlMerker
      33. End Sub
      34. Private Sub cb_7_Click() 'button 7
      35. ZahlMerker = ZahlMerker & "7"
      36. Label1.Caption = ZahlMerker
      37. End Sub
      38. Private Sub cb_8_Click() 'button 8
      39. ZahlMerker = ZahlMerker & "8"
      40. Label1.Caption = ZahlMerker
      41. End Sub
      42. Private Sub cb_9_Click() 'button 9
      43. ZahlMerker = ZahlMerker & "9"
      44. Label1.Caption = ZahlMerker
      45. End Sub
      46. Private Sub cb_c_Click() 'C taste, zum entfernen der eingabe
      47. RechMerker = ""
      48. ZahlMerker = ""
      49. Ergebnis = ""
      50. Label1.Caption = ""
      51. Zahl1 = "0"
      52. End Sub
      53. Private Sub cb_k_Click() 'Komma button
      54. ZahlMerker = ZahlMerker & "."
      55. Label1.Caption = ZahlMerker
      56. End Sub
      57. Private Sub cb_p_Click() 'Plus button
      58. Zahl1 = Val(ZahlMerker)
      59. RechMerker = "+"
      60. ZahlMerker = ""
      61. End Sub
      62. Private Sub cb_i_Click() '= button
      63. Dim Ergebnis As Double
      64. Select Case RechMerker
      65. Case "+"
      66. Ergebnis = Zahl1 + Val(ZahlMerker)
      67. ZahlMerker = Ergebnis
      68. Label1.Caption = Ergebnis
      69. End Select
      70. End Sub
      Alles anzeigen
    • @tequila99

      Nachdem Du nun mit ein wenig Hilfe so weit gekommen bist sollte das für
      Dich doch kein Problem mehr sein.

      Dein Ergebnis (ob in einem Label oder einem Textfeld) liegt doch vor.
      Nun nimmst Du Dein Ergebnis und rechnest weiter damit.

      Das setzt natürlich voraus, dass Du die Zahl mit der neuen Eingabe nicht löscht.

      :|Gruß
      Sascha
      Wer ein Problem erkennt, und nichts zu seiner Beseitigung unternimmt, der ist möglicherweise ein Teil dieses Problems.:D
    • Hallo liebe Community :-D

      Da hab ich ja noch was,vielleicht brauchbar :-)

      Eine Function die Zahlenblöcke isoliert und einem Array übergibt ;-)

      Die Functionsparameter dürften sich im Makro klären :!:

      Liebe Grüße euer Tanto :p

      Quellcode

      1. Sub ZahlenIsolieren()
      2. ReDim DatZahlen(0) As String
      3. Dim AnzZahl As Integer
      4. AnzZahl = 1
      5. Do
      6. 'Zum testen wird Cells(4, 4) genutzt,wie z.b. "10,7+3,1+3.333,33"
      7. If SumZahlen(Cells(4, 4), AnzZahl) = "" Then
      8. Exit Do
      9. Else
      10. DatZahlIndex = DatZahlIndex + 1
      11. ReDim Preserve DatZahlen(DatZahlIndex)
      12. DatZahlen(DatZahlIndex) = SumZahlen(Cells(4, 4), AnzZahl)
      13. AnzZahl = AnzZahl + 1
      14. End If
      15. Loop
      16. For Zzahl = 1 To UBound(DatZahlen())
      17. 'Das Array ist nun mit einer X Anzahl an Zahlen die auch Punkt wie Komma beinhalten können gefüllt
      18. 'Zum testen Cells(Zzahl, 1) = DatZahlen(Zzahl)
      19. Next Zzahl
      20. End Sub
      Alles anzeigen

      Quellcode

      1. Function SumZahlen(Zellen As Variant, zaehler1 As Integer) As String
      2. Dim Zelle As Range
      3. Dim zeich1 As Integer
      4. Dim schalter As Boolean
      5. Dim zaehler3 As Integer
      6. ReDim zaehler2(Len([Zellen])) As String
      7. zaehler3 = 1
      8. Application.Volatile
      9. If zaehler1 > Len([Zellen]) Then zaehler1 = Len([Zellen])
      10. For zeich1 = 1 To Len([Zellen])
      11. If Mid([Zellen], zeich1, 1) Like "[0-9,.]" = True Then
      12. zaehler2(zaehler3) = zaehler2(zaehler3) & Mid([Zellen], zeich1, 1)
      13. schalter = True
      14. End If
      15. If schalter = True And Mid([Zellen], zeich1, 1) Like "[0-9,.]" = False Then
      16. zaehler3 = zaehler3 + 1
      17. schalter = False
      18. End If
      19. Next zeich1
      20. SumZahlen = zaehler2(zaehler1)
      21. End Function
      Alles anzeigen


      Die Function lässt sich auch leicht ändern um Operatoren zu isolieren :pc:

      Ersetzen
      Like "[0-9,.]"
      Durch
      Like "[+-*/]" und oder weitere Operatoren
    • Hallo liebe Community :-D

      Erster kleiner Versuch :freu2:

      Liebe Grüße euer Tanto :p

      Zur Zeit funktionieren +-*/ mit positiven Zahlen

      Beispiel :-)

      Eingabe =Range("D4")="6+4/2+1,1"
      Ergebnis=Range("D5")=6,1

      Quellcode

      1. Option Explicit

      Quellcode

      1. Sub Rechner()
      2. ReDim DatZahlen(0) As String
      3. ReDim OpZahlen(0) As String
      4. Dim DatZahlIndex As Integer
      5. Dim AnzZahl As Integer
      6. Dim OpZahlIndex As Integer
      7. Dim Erg As Double
      8. Dim Zzahl As Integer
      9. AnzZahl = 1
      10. Do
      11. If SumZahlen(Cells(4, 4), AnzZahl) = "" Then Exit Do
      12. DatZahlIndex = DatZahlIndex + 1
      13. ReDim Preserve DatZahlen(DatZahlIndex)
      14. DatZahlen(DatZahlIndex) = SumZahlen(Cells(4, 4), AnzZahl)
      15. AnzZahl = AnzZahl + 1
      16. Loop
      17. AnzZahl = 1
      18. Do
      19. If SumOperatoren(Cells(4, 4), AnzZahl) = "" Then Exit Do
      20. OpZahlIndex = OpZahlIndex + 1
      21. ReDim Preserve OpZahlen(OpZahlIndex)
      22. OpZahlen(OpZahlIndex) = SumOperatoren(Cells(4, 4), AnzZahl)
      23. AnzZahl = AnzZahl + 1
      24. Loop
      25. Erg = CCur(DatZahlen(1))
      26. For Zzahl = 1 To UBound(OpZahlen())
      27. If OpZahlen(Zzahl) = "+" Then Erg = Erg + CCur(DatZahlen(Zzahl + 1))
      28. If OpZahlen(Zzahl) = "-" Then Erg = Erg - CCur(DatZahlen(Zzahl + 1))
      29. If OpZahlen(Zzahl) = "*" Then Erg = Erg * CCur(DatZahlen(Zzahl + 1))
      30. If OpZahlen(Zzahl) = "/" Then Erg = Erg / CCur(DatZahlen(Zzahl + 1))
      31. Cells(5, 4) = Erg
      32. Next Zzahl
      33. End Sub
      Alles anzeigen

      Quellcode

      1. Function SumZahlen(Zellen As Variant, zaehler1 As Integer) As String
      2. Dim Zelle As Range
      3. Dim zeich1 As Integer
      4. Dim schalter As Boolean
      5. Dim zaehler3 As Integer
      6. ReDim zaehler2(Len([Zellen])) As String
      7. zaehler3 = 1
      8. Application.Volatile
      9. If zaehler1 > Len([Zellen]) Then zaehler1 = Len([Zellen])
      10. For zeich1 = 1 To Len([Zellen])
      11. If Mid([Zellen], zeich1, 1) Like "[0-9,.]" = True Then
      12. zaehler2(zaehler3) = zaehler2(zaehler3) & Mid([Zellen], zeich1, 1)
      13. schalter = True
      14. End If
      15. If schalter = True And Mid([Zellen], zeich1, 1) Like "[0-9,.]" = False Then
      16. zaehler3 = zaehler3 + 1
      17. schalter = False
      18. End If
      19. Next zeich1
      20. SumZahlen = zaehler2(zaehler1)
      21. End Function
      Alles anzeigen

      Quellcode

      1. Function SumOperatoren(Zellen As Variant, zaehler1 As Integer) As String
      2. Dim Zelle As Range
      3. Dim zeich1 As Integer
      4. Dim schalter As Boolean
      5. Dim zaehler3 As Integer
      6. ReDim zaehler2(Len([Zellen])) As String
      7. zaehler3 = 1
      8. Application.Volatile
      9. If zaehler1 > Len([Zellen]) Then zaehler1 = Len([Zellen])
      10. For zeich1 = 1 To Len([Zellen])
      11. If Mid([Zellen], zeich1, 1) Like "[+-]" = True Or Mid([Zellen], zeich1, 1) = "*" Or Mid([Zellen], zeich1, 1) = "/" Then
      12. zaehler2(zaehler3) = zaehler2(zaehler3) & Mid([Zellen], zeich1, 1)
      13. schalter = True
      14. End If
      15. If schalter = True And Mid([Zellen], zeich1, 1) Like "[+-]" = False Or schalter = True And Mid([Zellen], zeich1, 1) <> "*" Or schalter = True And Mid([Zellen], zeich1, 1) <> "/" Then
      16. zaehler3 = zaehler3 + 1
      17. schalter = False
      18. End If
      19. Next zeich1
      20. SumOperatoren = zaehler2(zaehler1)
      21. End Function
      Alles anzeigen


      Dann war mir noch folgendes zur Like Syntax aufgefallen.
      Diese beiden Zeichen wurden bemänngelt "*/",deshalb eine weitere oder verknüpfung in eine der obigen Functionen :evil:

      Kurzbeschreibung wie zerlegt wird

      Definierten String "6+4/2+1,1" bzw. eingabe

      Zahlenblöcke werden einem Eindimensionalen Array übergeben,indexende mit Ubound ermittelt
      6
      4
      2
      1,1
      Festgestellte Anzahl über Index =4 (der index ist der 2 Parameter der Functionen)

      Operatoren werden isoliert
      +
      /
      +
      Festgestellte Anzahl über Index =3 (der index ist der 2 Parameter der Functionen)

      Der erste Zahlenblock wird der Ergebnisvariablen zugewiesen

      Nun können parallel Zahlenblöcke wie Operanden über If bedingungen die Ergebnisvariable füllen.
    • Option Compare Database
      Option Explicit
      'Taschenrechner
      Dim gmDezimal As Integer
      Dim gmOperator As Double




      Function Clear() '********************
      '** Alles Löschen **
      '********************


      Dim f As Form

      Set f = Forms!Taschenrechner

      f!memoryfield = 0
      f!Anzeige = 0
      f!zeichen = ""
      f!operator = 0
      gmDezimal = 0

      End Function

      Function ziffern(z As Integer) '********************
      '** Dezimalstellen **
      Dim f As Form '********************

      Set f = Forms!Taschenrechner
      Dim g As Integer



      If gmDezimal >= 1 Then
      f!Anzeige = f!Anzeige + z / (10 ^ gmDezimal)

      gmDezimal = gmDezimal + 1

      Else
      f!Anzeige = z + 10 * f!Anzeige
      End If







      End Function


      Function rad() '*******************
      '** Wurzelziehen **
      '*******************

      Dim x As Form

      Set x = Forms!Taschenrechner


      x!zeichen = "rad"

      x!operator = x!operator & Sqr(x!Anzeige)

      x!Anzeige = ""

      End Function


      Function rechnen(q As String)
      Dim g As Integer


      '********************
      '** Rechnen **
      '********************

      Dim f As Form
      Set f = Forms!Taschenrechner

      gmDezimal = 0
      If f!operator = 0 Or f!operator = "" Or f!operator = Null Then
      f!operator = f!Anzeige & q
      Else
      f!operator = f!operator & f!Anzeige & q
      End If
      f!Anzeige = 0




      End Function







      Function result()

      Dim f As Form

      Dim str_Rechnen As String ' Länge der Zeichenfolge
      Dim arr_Rechnen() As String 'Array
      Dim len_Rechnen As Long 'Langzahlen
      Dim operand As Boolean 'Zahl oder Rechenzeichen
      Dim arr_Position As Integer 'Zahlen
      Dim i As Integer 'Variable definieren
      Dim msg As String
      Dim o As Integer 'Variable definieren

      Set f = Forms!Taschenrechner
      f!operator = f!operator & f!Anzeige 'weiterführende Rechnung
      str_Rechnen = f!operator 'Ganze Rechnung?
      ReDim arr_Rechnen(len_Rechnen)

      arr_Position = 0 'Anfang
      For i = 1 To len_Rechnen
      If i = 1 Or Mid(str_Rechnen, i, 1) = "," Then 'ertes Zeichen oder "," gehört immer zum operand deshalb operand immer True
      operand = True
      ElseIf operand = False Then 'Rechenzeichen
      operand = True ' nach einem operator kommt immer ein operand
      arr_Position = arr_Position + 1 'Ein Schritt weiter
      Else
      operand = IsNumeric(Mid(str_Rechnen, i, 1)) 'wird überprüft ob Zeichen Zahl ist
      End If

      If operand = True Then 'Dezimalzahl festlegen
      If Mid(str_Rechnen, i, 1) = "," Then 'wenn ein komma getippt wird
      arr_Rechnen(arr_Position) = arr_Rechnen(arr_Position) & "." 'Dann mit Punkt statt Komma rechnen
      Else
      arr_Rechnen(arr_Position) = arr_Rechnen(arr_Position) & Mid(str_Rechnen, i, 1) 'Wenn Zeichen eine Zahl dann ist sie dem gleichen Array angefügt
      End If
      Else 'ist ein operator Array wir um 1 erhöht und operator dem Array zugefügt
      arr_Position = arr_Position + 1 'Ein Schritt weiter wenn kein Komma
      arr_Rechnen(arr_Position) = Mid(str_Rechnen, i, 1)
      End If
      Next i
      'Ausgabe zur Überprüfung des Arrays
      For i = 0 To arr_Position
      msg = msg & i & ": " & arr_Rechnen(i) & vbCrLf
      Next i
      Debug.Print (msg)
      '*******
      For i = 0 To arr_Position 'In dieser Schleife wird die Rechung gurchgeführt
      If arr_Rechnen(i) = "*" Or arr_Rechnen(i) = "/" Then 'Wegen punkt vor strich muss zuerst * oder / gerechnet werden wenn das zutrifft, nimmt er den operand vor und nachdem operator und rechnet
      'danach wird das Ergebnis auf die Position auf des ersten Operanten ins Array geschrieben
      If arr_Rechnen(i) = "*" Then
      o = i - 1
      Do Until arr_Rechnen(o) <> "" 'Wenn Operant = "" dann ArrPosition zurück
      o = o - 1
      Loop
      arr_Rechnen(o) = Str(Val(arr_Rechnen(o)) * Val(arr_Rechnen(i + 1)))
      arr_Rechnen(i) = ""
      arr_Rechnen(i + 1) = ""
      Else
      o = i - 1
      Do Until arr_Rechnen(o) <> ""
      o = o - 1
      Loop
      arr_Rechnen(o) = Str(Val(arr_Rechnen(o)) / Val(arr_Rechnen(i + 1)))
      arr_Rechnen(i) = ""
      arr_Rechnen(i + 1) = ""
      End If
      End If
      Next i
      For i = 0 To arr_Position
      msg = msg & i & ": " & arr_Rechnen(i) & vbCrLf
      Next i
      Debug.Print (msg)
      For i = 0 To arr_Position
      If arr_Rechnen(i) = "+" Or arr_Rechnen(i) = "-" Then
      If arr_Rechnen(i) = "+" Then
      o = i - 1
      Do Until arr_Rechnen(o) <> ""
      o = o - 1
      Loop
      arr_Rechnen(o) = Str(Val(arr_Rechnen(o)) + Val(arr_Rechnen(i + 1)))
      arr_Rechnen(i) = ""
      arr_Rechnen(i + 1) = ""
      Else
      o = i - 1
      Do Until arr_Rechnen(o) <> ""
      o = o - 1
      Loop
      arr_Rechnen(o) = Str(Val(arr_Rechnen(o)) - Val(arr_Rechnen(i + 1)))
      arr_Rechnen(i) = ""
      arr_Rechnen(i + 1) = ""
      End If
      End If
      Next i
      For i = 0 To arr_Position
      msg = msg & i & ": " & arr_Rechnen(i) & vbCrLf
      Next i
      Debug.Print (msg)

      f!Anzeige = Val(arr_Rechnen(o))



      'Case "*": f!Anzeige = f!Anzeige * f!operator

      'f!operator = ""

      'End Select
      'f!operator = 0







      End Function


      Function plusminus()
      '***********************
      '** Vorzeichen ändern **
      '***********************

      Dim f As Form

      Set f = Forms!Taschenrechner

      f!Anzeige = f!Anzeige * (-1)

      End Function




      Function komma()



      Debug.Print gmDezimal


      If gmDezimal = 0 Then

      gmDezimal = 1

      End If


      End Function


      Function Back()
      '*********************
      '** Ziffern löschen **
      '*********************


      Dim f As Form

      Set f = Forms!Taschenrechner


      Debug.Print gmDezimal





      If gmDezimal >= 2 Then




      f!Anzeige = f!Anzeige * 10 ^ (gmDezimal - 2)
      f!Anzeige = Int(f!Anzeige)
      f!Anzeige = f!Anzeige / 10 ^ (gmDezimal - 2)

      gmDezimal = gmDezimal - 1



      Else

      f!Anzeige = Int(f!Anzeige / 10)

      gmDezimal = 0



      End If


      End Function




      Function Taxplus() '********************
      '** Plus Steuer **
      '********************



      Dim f As Form

      Set f = Forms!Taschenrechner

      f!Anzeige = f!Anzeige + f!Anzeige * (19 / 100)



      End Function







      Function Taxminus()
      '********************
      '** minus Steuer **
      '********************


      Dim f As Form

      Set f = Forms!Taschenrechner

      f!Anzeige = f!Anzeige - f!Anzeige * (19 / 100)


      End Function





      Function Memoryplus()
      '****************************************
      '** Addition des vorherigen Ergebnis **
      '****************************************


      Dim x As Form

      Set x = Forms!Taschenrechner


      x!memoryfield = x!operator

      x!Anzeige = x!Anzeige + x!memoryfield




      End Function







      Function Memoryminus()

      '*******************************************
      '** Subtraktion des vorherigen Ergebnis **
      '*******************************************


      Dim x As Form

      Set x = Forms!Taschenrechner


      x!memoryfield = x!operator

      x!Anzeige = x!Anzeige - x!memoryfield




      End Function



      Function memoryclear()
      '****************************************
      '** Löschen des vorherigen Ergebnis **
      '****************************************



      Dim x As Form

      Set x = Forms!Taschenrechner


      x!memoryfield = 0






      End Function



      Function etod()
      '****************************************
      '** Euro Dollar Wechsel **
      '****************************************


      Dim x As Form
      Set x = Forms!Taschenrechner



      x!operator = x!Anzeige * 1.336


      End Function


      Function dtoe()

      '****************************************
      '** Dollar Euro Wechsel **
      '****************************************

      Dim x As Form
      Set x = Forms!Taschenrechner

      x!operator = x!Anzeige / 1.336

      End Function








      Function hoch3()

      '****************************************
      '****** Potenz hoch 3 ******
      '****************************************

      Dim x As Form

      Set x = Forms!Taschenrechner



      x!zeichen = "^3"

      x!operator = x!operator & x!Anzeige ^ 3
      x!Anzeige = ""


      End Function


      Function hoch2()

      '****************************************
      '****** Potenz hoch 2 ******
      '****************************************



      Dim x As Form

      Set x = Forms!Taschenrechner



      x!zeichen = "^2"

      x!operator = x!operator & x!Anzeige ^ 2
      x!Anzeige = ""

      End Function


      Function hochx()

      '****************************************
      '****** Potenz hoch x ******
      '****************************************

      Dim x As Form

      Set x = Forms!Taschenrechner
      x!zeichen = "x^y"
      x!operator = x!Anzeige

      x!Anzeige = 0



      End Function