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

Forumthread: Funktion aus private sub aufrufen

Funktion aus private sub aufrufen
18.04.2017 17:02:57
Berni
Hallo,
ich habe eine selbst geschriebene Funktion (public function) in Modul5 gespeichert.
In Modul1 habe ich ein weiteres vba (private sub) gespeichert.
Kann man die Funktion in Modul5 aus Modul1 heraus aufrufen?
Z.B. mit einer code Zeile call.function oder call.modul5 o.ä.?
Danke und Gruss,
Berni
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Funktion aus private sub aufrufen
18.04.2017 17:04:48
Hajo_Zi
die Funktion darf nicht den Namen "function" haben da dies ein Befehl von VBA ist.
einfach Testen

AW: Funktion aus private sub aufrufen
18.04.2017 17:14:50
Berni
Die Funktion heisst Buchhalternase.
Und wie rufe ich sie aus dem private sub heraus auf?
AW: Funktion aus private sub aufrufen
18.04.2017 18:04:18
Hajo_Zi
Buchhalternase
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Gruß Hajo
Anzeige
Na, die Nase kommt mir doch bekannt vor, ...
18.04.2017 18:28:28
Luc:-?
…Berni;
hatte das nicht Ransi für dich geschrieben‽ Warum nun als Function, die ruft man idR nicht mit Call auf, sondern weist ihr Ergebnis einer Variablen oder einem Objekt zu. Da sie aber etwas ausführen soll und deshalb vermutlich gar kein spezifisches Ergebnis hat, ist das nicht sonderlich sinnvoll, es sei denn, in ihr wird auch der Ausführungserfolg kontrolliert und dement­sprechend True oder False zurück­gegeben, worauf die aufrufende SubRoutine differenziert reagieren könnte.
Anderenfalls sollte dieses TeilPgm eine SubProzedur bleiben, auch die kann man ggf parametrieren, und per Call Buchhalternase(…) aufgerufen wdn. Wenn sie (standardmäßig) public ist, ist das im gleichen VBA-Projekt auch kein Problem, falls sie in einem normalen Modul (.bas beim Exportieren) steht.
Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Funktion aus private sub aufrufen
18.04.2017 19:30:32
Gerd

Call Buchhalternase(Cells(4, 4), Cells(5, 4))

Hallo Berni,
justieren musst du selbst.
Gruß Gerd
AW: Funktion aus private sub aufrufen
18.04.2017 22:13:17
Berni
Hallo an alle,
ich hab das Problem jetzt so gelöst, indem ich die Zelle, die die Berechnung der Buchhalternase-Funktion via Listenfeld "ja,nein" startet, auf "ja" setzen lasse durch eine code Zeile, bevor das Kassenbuch gesperrt wird.
Manchmal programmiert man halt von hinten durch die Brust ins Knie ;-)
Aber vielen Dank für Eure Hilfe!
Berni
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Funktion aus Private Sub aufrufen in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Modul erstellen: Öffne dein Excel-Dokument und gehe in den VBA-Editor (Alt + F11). Erstelle ein neues Modul, z.B. Modul5, für deine Public Function.

  2. Public Function definieren: Schreibe deine Funktion, z.B. Buchhalternase, in Modul5. Stelle sicher, dass die Funktion als Public deklariert ist, damit sie von anderen Modulen aus aufgerufen werden kann.

    Public Function Buchhalternase(input1 As Variant, input2 As Variant) As Variant
        ' Deine Berechnungen hier
        Buchhalternase = input1 + input2 ' Beispielberechnung
    End Function
  3. Private Sub erstellen: Gehe zu Modul1 und erstelle eine Private Sub, in der du die Funktion aufrufen möchtest.

    Private Sub BeispielSub()
        Dim ergebnis As Variant
        ergebnis = Buchhalternase(Cells(4, 4), Cells(5, 4))
        MsgBox "Das Ergebnis ist: " & ergebnis
    End Sub
  4. Aufruf der Funktion: Rufe die Funktion in der Private Sub einfach ohne Call auf, es sei denn, du möchtest eine spezielle Syntax verwenden.


Häufige Fehler und Lösungen

  • Fehler: „Sub oder Function nicht definiert“:

    • Stelle sicher, dass deine Funktion als Public deklariert ist.
  • Fehler: Falsche Parameteranzahl:

    • Überprüfe die Anzahl und den Typ der Parameter, die du an die Funktion übergibst.
  • Fehler bei der Nutzung von Call:

    • Call ist optional. Du kannst die Funktion auch ohne Call aufrufen, was oft einfacher ist.

Alternative Methoden

  • Zuweisung ohne Call: Anstatt Call Buchhalternase(...), kannst du einfach Buchhalternase(...) verwenden, um die Funktion in einer Zeile auszuführen und das Ergebnis zu einer Variablen zuzuweisen.

  • Sub statt Function: Wenn die Funktion keine Rückgabewerte benötigt, kannst du sie als Private Sub deklarieren und sie dann direkt aufrufen.


Praktische Beispiele

Hier sind einige Beispiele, wie du die Funktion Buchhalternase in verschiedenen Szenarien aufrufen kannst:

Private Sub Beispiel1()
    Dim total As Variant
    total = Buchhalternase(5, 10)
    Debug.Print "Total: " & total
End Sub

Private Sub Beispiel2()
    Buchhalternase "Test", "Wert"
End Sub

In diesen Beispielen siehst du, wie du die Public Function in unterschiedlichen Kontexten nutzen kannst.


Tipps für Profis

  • Modularisierung: Halte deine Funktionen in separaten Modulen, um die Übersichtlichkeit zu erhöhen. Dies erleichtert das Debugging und die Wiederverwendbarkeit.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinen Funktionen, um unerwartete Probleme abzufangen.

  • Dokumentation: Kommentiere deinen Code ausführlich, damit andere (oder du selbst in der Zukunft) ihn leicht verstehen können.


FAQ: Häufige Fragen

1. Was ist ein Private Sub in VBA?
Ein Private Sub ist eine Prozedur, die nur innerhalb des Moduls aufgerufen werden kann, in dem sie definiert ist. Sie ist nicht von anderen Modulen oder Arbeitsblättern aus zugänglich.

2. Wie kann ich eine Private Sub aufrufen?
Eine Private Sub kann nur innerhalb des gleichen Moduls aufgerufen werden. Du kannst sie mit ihrem Namen aufrufen, ohne Call zu verwenden.

3. Kann ich eine Private Function aus einem anderen Modul aufrufen?
Nein, Private Functions sind nur innerhalb des Moduls verfügbar, in dem sie definiert sind. Verwende Public, um Funktionen für andere Module zugänglich zu machen.

4. Wie setze ich die Buchhalternase richtig in Excel ein?
Stelle sicher, dass die Funktion korrekt deklariert ist und die richtigen Parameter übergibst, um die gewünschten Ergebnisse zu erhalten.

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