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

Forumthread: Funktion aus Modul aufrufen

Funktion aus Modul aufrufen
13.10.2005 13:03:09
Norbert
Hallo,
versuche von einer UserForm aus eine Funktion aus einem Modul aufzurufen.
Leider versagen die mir aus VB bekannten Methoden, weil das Modul nicht
als Objekt erkannt wird. Wie geht es richtig ... ?
m. b. G. Norbert
_____________________
e.o.m.
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion aus Modul aufrufen
13.10.2005 13:07:56
ede
hallo norbert,
ist die funktion in deinem modul richtig deklariert?
gib mal ein beispiel .
gruss
AW: Funktion aus Modul aufrufen
13.10.2005 14:18:40
Norbert
Hi ede,
hier das Modul:
Option Explicit

Private Sub test_A()
Dim frueher As Date
frueher = Format(DateAdd("d", -30, Now()), "dd.mm.yy")
Debug.Print "test_A", "-------", frueher
End Sub

das laeuft auch, wenn man es separat aufruft.
Und hier die Funktion aus der UserForm:

Private Sub cmdTest_Click()
Call tester.test_A
End Sub

Habe schon einiges experimentiert, aber VBA mault nur rum.
"tester" muesste IMHO als Objekt erkannt werden, tut es aber nicht tun ...
Anzeige
AW: Funktion aus Modul aufrufen
13.10.2005 15:43:22
ede
hallo,
und wenn die fie funktion so deklarierst:

Private Sub test_A()
End Sub

sorry meinte so
13.10.2005 15:44:45
ede

Sub test_A()
End Sub

AW: Fehler gefunden ...
14.10.2005 01:33:26
Norbert
Hallo Ede,
wenn man eine Procedur als "Private" declariert, dann ist sie auch "privat" und kann nicht von anderen Modulen oder Forms benutzt werden. Manchmal hat man echt ein Brett vor dem Kopf ... ts ts ts ... ;-)
m. b. G. Norbert
_____________________
e.o.m.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Funktion aus einem Modul aufrufen in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Funktion aus einem VBA-Modul in einer UserForm aufzurufen, befolge diese Schritte:

  1. VBA-Modul erstellen:

    • Öffne den Visual Basic for Applications (VBA) Editor (Alt + F11).
    • Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt und wähle „Einfügen“ > „Modul“.
  2. Funktion oder Sub erstellen:

    • Schreibe eine öffentliche Sub oder Funktion in deinem Modul. Achte darauf, dass diese nicht als Private deklariert ist, da private Prozeduren nicht von anderen Modulen oder Forms aufgerufen werden können.
      Public Sub test_A()
      Dim frueher As Date
      frueher = Format(DateAdd("d", -30, Now()), "dd.mm.yy")
      Debug.Print "test_A", "-------", frueher
      End Sub
  3. UserForm erstellen und Schaltfläche hinzufügen:

    • Füge eine UserForm hinzu und platziere eine Schaltfläche (CommandButton) darauf.
  4. Code für die Schaltfläche hinzufügen:

    • Doppelklicke auf die Schaltfläche und füge den folgenden Code hinzu:
      Private Sub cmdTest_Click()
      Call test_A
      End Sub
  5. Testen:

    • Starte die UserForm und klicke auf die Schaltfläche. Deine Funktion sollte jetzt aufgerufen werden.

Häufige Fehler und Lösungen

  • Fehler: "Sub oder Function nicht definiert"

    • Stelle sicher, dass die Sub oder Funktion als Public deklariert ist. Private Prozeduren sind nur im gleichen Modul zugänglich.
  • Fehler: Modul nicht als Objekt erkannt

    • Überprüfe, ob du die Funktion korrekt aufrufst. Ein einfaches Call test_A reicht aus, solange die Prozedur öffentlich ist.

Alternative Methoden

  1. VBA Modul aufrufen:

    • Du kannst auch Funktionen aus verschiedenen Modulen aufrufen, indem du den Modulkopf in deinem Aufruf angibst:
      Call ModulName.test_A
  2. Excel VBA Sub aus anderem Modul aufrufen:

    • Wenn du Funktionen in verschiedenen Modulen hast, achte darauf, dass du den Modulnamen vor der Sub angibst.

Praktische Beispiele

Hier ist ein Beispiel für das Aufrufen einer Funktion aus einem anderen Modul:

' Im Modul1
Public Sub test_A()
    MsgBox "Funktion aus Modul1 aufgerufen!"
End Sub

' In der UserForm
Private Sub cmdTest_Click()
    Call Modul1.test_A
End Sub

Mit dieser Methode kannst du deine Excel VBA Module effizient verwalten und Funktionen zwischen ihnen aufrufen.


Tipps für Profis

  • Gute Struktur: Organisiere deine Module und Funktionen gut, um die Wartung und Lesbarkeit deines Codes zu verbessern.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um mögliche Laufzeitfehler abzufangen.
  • Namen konsistent halten: Verwende konsistente und aussagekräftige Namen für deine Module und Subs, um die Auffindbarkeit zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich eine private Funktion aus einem anderen Modul aufrufen?
Private Funktionen sind nur innerhalb des Moduls zugänglich, in dem sie erstellt wurden. Du musst sie als Public deklarieren, um sie von anderen Modulen aus aufzurufen.

2. Was ist der Unterschied zwischen Sub und Function in VBA?
Eine Sub führt eine Aktion aus, gibt jedoch keinen Wert zurück, während eine Function einen Wert zurückgibt und in Berechnungen verwendet werden kann.

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