Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1828to1832
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
VBA - Private Sub in UF aufrufen
04.05.2021 20:37:11
MarC
Hallo zusammen,
weiß jemand wie man ein Private Sub das z.B. im Tabellenblatte 1 hinterlegt ist in einem Userform aufruft? Mit Call allein funktioniert es nicht.
Grüße
MarC

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Private Sub in UF aufrufen
04.05.2021 20:56:41
Nepumuk
Hallo Marc,
deklariere die Prozedur als Public.
Gruß
Nepumuk
AW: VBA - Private Sub in UF aufrufen
04.05.2021 21:14:57
MarC
Hi Nepumuk,
geht das bei so einem Sub auch:

Public Sub SearchTerm_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Wenn ich "Call SearchTerm_KeyUp" im Userform angebe kommt die Meldung "Sub oder Funktion nicht definiert"
Wie soll ich denn ein Sub deklarieren? Einfach Public SearchTerm.........?
AW: VBA - Private Sub in UF aufrufen
04.05.2021 22:01:20
Daniel
Hi
ja, geht auch bei so einer Event-Sub.
das Public/Private hast keinen Einfluss auf die automatische Ausführung beim Eintreten des Events.
als Private gekennzeichnete Makros können nur von Makros aufgerufen werden, die im selben Modul liegen
als Public gekennzeichnete Makro können auch von Makros aufgerufen, werden, die in anderen Modulen liegen.
bei Makros, die nicht in einem allgemeinen Modul liegen, muss man beim Aufruf immer den Modulnamen voranstellen.
Da sich die Makros in jedem Tabellenblattmodul mit dem selben Namen wiederholen können (jedes Tabellenblatt kann ein Change-Makro haben), ist das zur eindeutigen Identifizierung notwendig.
Außerdem musst du natürlich die angegebenen Parameter mit angeben.
Also etwa in der Form:

Call Tabelle1.SearchTerm_KeyUp(13, 0)
Gruß Daniel
Anzeige
AW: VBA - Private Sub in UF aufrufen
04.05.2021 22:57:25
MarC
Danke Daniel für die ausführliche Erklärung. Woher weiß ich welche Parameter ich nehmen muss bzw. wie kommst du auf 13, 0? Bei mir bringt er jetzt bei ausführen folgende Meldung "Typenunverträglichkeit" bei der 13.
Gruß
MarC
AW: VBA - Private Sub in UF aufrufen
05.05.2021 08:41:58
Daniel
Naja das sagen dir doch die Parameter, bzw es sollte in der Liste stehen.
Der erste Parameter beim KeyUp/KeyDown ist die Nummer der gedrückten Taste (ich hab mal ENTER für das Beispiel angenommen) und der zweite gibt an, welche Zusatztasten (Shift, Strg, Alt) dabei gehalten wurden.
Wo jetzt das Problem mit dem Datentyp liegt weiß ich auch nicht.
Gruß Daniel
Anzeige
AW: VBA - Private Sub in UF aufrufen
05.05.2021 11:05:53
Daniel
Hi
mit dem MSForms.ReturnInteger ist das etwas kompliziert.
einer Möglichkeit, das Makro aufzurufen, wäre diese:
im Tabellenblattmodul:

Public Sub SearchTerm_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
im anderen Modul:

dim x as MSForms.ReturnInteger
call Tabelle1.SearchTerm_KeyUp(x , 0)
das Problem ist, dass die übergebene Variable KeyCode im Makro SearchTerm_KeyUp nicht angewendet werden darf, wenn es über das makro aufgerufen wird und nicht normal als Eventmakro, denn KeyCode ist in diesem fall Leer und das führt dann zu einem Fehlerabbruch, wenn du die Variable verwendest.
dh wenn in SearchTerm_KeyUp KeyCode verwendet wird, müsstest du das so absichern:

Public Sub SearchTerm_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
if KeyCode is nothing then
hier der Codeteil ohne die verwendung von KeyCode
else
hier der Codeteil, in dem KeyCode verwendet wird.
End if
Gruß Daniel
Anzeige
Thx Daniel
06.05.2021 00:03:02
MarC
Servus Daniel,
ich habe es getestet und es funktioniert Danke ;-)

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige