Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fakultät in VBA

Forumthread: Fakultät in VBA

Fakultät in VBA
21.12.2006 11:12:02
Ptonka
Hallo zusammen,
ich möchte per VBA von einer Zahl die Fakultät berechnen. Welche Syntax muss ich hierfür benutzen?
Also z.B. Wert = Fakultät(Zahl)
Für einen Tipp wäre ich sehr dankbar.
Gruß,
Ptonka
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fakultät in VBA
21.12.2006 11:36:19
Andi
Hi,
das geht so:

Sub t()
Dim zahl
zahl = 5
MsgBox Application.WorksheetFunction.Fact(zahl)
End Sub

Schönen Gruß,
Andi
AW: Fakultät in VBA
21.12.2006 11:40:06
EtoPHG
Hallo Ptonka,
Gibts nicht...
Musste selber schreiben, z.B. so (geht mit Zahlen bis 170):
Public

Function Factorial(iNumber As Integer) As Double
Select Case iNumber
Case 2 To 170
Factorial = iNumber * Factorial(iNumber - 1)
Case 0, 1
Factorial = 1
Case Else
Factorial = Null
End Select
End Function

Gruss Hansueli
Anzeige
AW: Fakultät in VBA
21.12.2006 11:45:36
ptonka
Hallo Hansueli,
es geht doch, siehe Antwort von Andi.
Ich hatte es schon ähnlich ausprobiert, aber anstatt
Application.WorksheetFunction.Fact(Zahl)
nur
WorksheetFunction.Fact(Zahl)
geschrieben und das funktionierte nicht.
Also Andi - vielen Dank für den entscheidenden Hinweis.
Gruß,
Ptonka
Anzeige
AW: Fakultät in VBA
21.12.2006 11:49:43
EtoPHG
Hallo Ptonka,
Andi benutzt eine Worksheet-Function, meins ist reines VBA.
Vergleich mal Andi's Routine mit meiner, mit der Zahl 200 !
Geht's noch ?
Gruss Hansueli
AW: Fakultät in VBA
21.12.2006 12:00:05
Andi
Hi,
nö, geht nimmer, Deine aber auch nicht... ;-)
Bei mir erzeugen Deine Variante und die WorksheetFunction bis 170 das gleiche Resultat, aber 171 gehn beide nimmer.
Schönen Gruß,
Andi
Anzeige
Das war auch zu erwarten, weil die Zahl zu groß...
21.12.2006 12:54:50
Luc:-?
...wird, Andi & Hansueli,
aber da gibt es einen Trick (irgendwann nächtes Jahr auf meiner Website, habe jetzt leider keine Zeit das rauszusuchen), evtl mal recherchieren.
Gruß + mXm Luc :-?
;
Anzeige

Infobox / Tutorial

Fakultät in VBA berechnen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein, um die Fakultät mit der WorksheetFunction zu berechnen:

    Sub t()
        Dim zahl As Integer
        zahl = 5
        MsgBox Application.WorksheetFunction.Fact(zahl)
    End Sub
  4. Um eine benutzerdefinierte Funktion zu erstellen, die auch größere Zahlen berechnen kann, nutze folgenden Code:

    Function Factorial(iNumber As Integer) As Double
        Select Case iNumber
            Case 2 To 170
                Factorial = iNumber * Factorial(iNumber - 1)
            Case 0, 1
                Factorial = 1
            Case Else
                Factorial = Null
        End Select
    End Function
  5. Schließe den VBA-Editor und gehe zurück zu Excel. Du kannst jetzt die Funktion =Factorial(Zahl) in einer Zelle verwenden.


Häufige Fehler und Lösungen

  • Fehler: "Typ nicht korrekt"
    Lösung: Stelle sicher, dass die Eingabewerte vom Typ Integer sind. Verwende für größere Zahlen Long, um Überläufe zu vermeiden.

  • Fehler: "Berechnung nicht möglich"
    Lösung: Die Fakultät ist nur bis 170 berechenbar mit der eingebauten WorksheetFunction. Für größere Werte musst du eine eigene Funktion programmieren.


Alternative Methoden

Wenn du keine VBA-Programmierung nutzen möchtest, kannst du die Fakultät auch direkt in Excel berechnen:

  • Verwende die Formel =FACT(Zahl), um die Fakultät einer Zahl in einer Zelle zu berechnen.
  • Für komplexere Berechnungen kannst du auch die FACTDOUBLE-Funktion verwenden, die die Fakultät von geraden oder ungeraden Zahlen berechnet.

Praktische Beispiele

  1. Fakultät von 5 berechnen:
    In einer Zelle schreibst du =FACT(5), was 120 zurückgibt.

  2. Fakultät mit benutzerdefinierter Funktion:
    Verwende =Factorial(6), um 720 zu erhalten.

  3. Berechnung mehrerer Fakultäten:
    Erstelle eine Liste von Zahlen in Spalte A und nutze in Spalte B die Formel =FACT(A1), um die Fakultäten zu berechnen.


Tipps für Profis

  • Du kannst die Funktion Factorial erweitern, um auch negative Eingaben zu behandeln.
  • Achte darauf, dass die MsgBox in VBA nützlich ist, um schnell Ergebnisse anzuzeigen, jedoch nicht für große Datenmengen geeignet ist.
  • Experimentiere mit rekursiven und nicht-rekursiven Ansätzen zur Berechnung der Fakultät, um ein besseres Verständnis für die Funktionsweise zu bekommen.

FAQ: Häufige Fragen

1. Wie kann ich die Fakultät für große Zahlen berechnen?
Für Zahlen über 170 solltest du eigene Berechnungsmethoden in Betracht ziehen, da die Standardfunktionen dies nicht unterstützen.

2. Gibt es eine eingebaute Excel-Funktion für Fakultäten?
Ja, die FACT-Funktion in Excel erlaubt dir, die Fakultät einer Zahl direkt zu berechnen, ohne VBA verwenden zu müssen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige