[Excel] Taschenrechner mit Wurzel- und Fakultätsfunktion

Joahn

Grünschnabel
Hey, ich habe folgendes Programm geschrieben. Fakultät habe ich noch gar nicht, mit Wurzel funktionierts nicht. Kann mir jemand helfen?
Visual Basic:
Option Explicit

Private Sub UserForm_Initialize()
   cmb_Fact.AddItem "+"
   cmb_Fact.AddItem "sqrt"
   cmb_Fact.AddItem "-"
   cmb_Fact.AddItem "*"
   cmb_Fact.AddItem "/"
End Sub

Private Sub cmb_Fact_Change()
   lst_Result.AddItem Calculate
End Sub

Function Calculate()
   If IsNumeric(txt_V1) And IsNumeric(txt_V2) Then
      If cmb_Fact = "+" Then
         Calculate = CDbl(txt_V1) + CDbl(txt_V2)
      ElseIf cmb_Fact = "sqrt" Then
         Calculate = sqrt(txt_V1)
      ElseIf cmb_Fact = "-" Then
         Calculate = CDbl(txt_V1) - CDbl(txt_V2)
      ElseIf cmb_Fact = "*" Then
         Calculate = CDbl(txt_V1) * CDbl(txt_V2)
      ElseIf cmb_Fact = "/" Then
         If txt_V2 > 0 Then
            Calculate = CDbl(txt_V1) / CDbl(txt_V2)
         Else
            MsgBox "Division durch 0 nicht möglich."
         End If
      End If
   Else
      Calculate = "Fehler"
   End If
End Function

Private Sub lst_Result_DblClick(ByVal Cancel As _
                                MSForms.ReturnBoolean)
   If lst_Result <> "Fehler" Then
      ActiveCell = CDbl(lst_Result)
   Else
      ActiveCell = lst_Result
   End If
End Sub

Private Sub cmd_DeleteOne_Click()
   If lst_Result.ListIndex >= 0 Then
      lst_Result.RemoveItem (lst_Result.ListIndex)
   End If
End Sub

Private Sub cmd_DeleteAll_Click()
   lst_Result.Clear
End Sub

Private Sub cmd_Cancel_Click()
   Unload Me
End Sub
 
Zuletzt bearbeitet von einem Moderator:
Was heisst, 'Funktioniert nicht'?
Kommt eine Fehlermeldung,
Verhält es sich komisch?
Kommt einfach ein falsches Resutat?

Item, Warum machst du eine so komplizierte if...elseif..elseif...elseif..end if?
Dafür gibts doch den 'Select Case'

Ansonsten hier noch ein Link
https://www.google.ch/#q=vb6+sqrt+function
 
Hey,

ich bekomme für die Wurzel eine Fehlermeldung: "Fehler beim Kompilieren. Sub oder Funtion funktioniert nicht.

Für die Fakultät habe ich überhaupt keine Ahnung, wie ich da rangehe.

Wie mache ich das mit dem select case?
 
SELECT CASE + VBA googeln

Wurzel -> Folge dem Link den ich gepostet habe.

Fakultät: Goggeln nach +VBA +Fakultät +Excel. Denn Excel VBA hat eine Funktion dazu....

ich will mal nicht so sein.
Gemäss meinen Google-Recherchen und einem kurzen Test (alles in allem 2 Minuten)
Visual Basic:
Test im Direktfenster von Excel:
?Application.WorksheetFunction.ImSqrt(25)
5
?Application.WorksheetFunction.Fact(4)
 24
 
Zurück