VBA Modul ruft Public Sub in Userform auf
Moin zusammen
Wieder mal ein doofes Problem...
Ich hab eine Userform mit viel Code und dieser Code greift auf verschiedene Worksheets zu. Deshalb ist der Code im Codeabschnitt der Userform und nicht in den Modulen.
Ich möchte jetzt zwei onTime's setzen beim Aufrufen der Userform. Einmal um eine Aktualisierung zu pushen (in Codeform in der Userform (kann in der Userform auch per Button aufgerufen werden)) und einmal um das Excel zu schliessen. Mit folgendem onTime Code kann ich leider nicht in der Userform ein Sub ausführen lassen (onTime und der gewünschte Code wären zwar am selben Ort):
Also habe ich den Sub TestRef in ein Modul gepappt. Darin hab ich jetzt wie folgt versucht den Sub in der Userform zu starten:
Das geht leider auch nicht... Ich erhalte nun die Meldung "Objekt erforderlich" ...
Wie bring ich das ganze auf die Reihe?
Grüsse,
Aiv
Wieder mal ein doofes Problem...
Ich hab eine Userform mit viel Code und dieser Code greift auf verschiedene Worksheets zu. Deshalb ist der Code im Codeabschnitt der Userform und nicht in den Modulen.
Ich möchte jetzt zwei onTime's setzen beim Aufrufen der Userform. Einmal um eine Aktualisierung zu pushen (in Codeform in der Userform (kann in der Userform auch per Button aufgerufen werden)) und einmal um das Excel zu schliessen. Mit folgendem onTime Code kann ich leider nicht in der Userform ein Sub ausführen lassen (onTime und der gewünschte Code wären zwar am selben Ort):
Application.onTime TimeValue(ThisWorkbook.Worksheets("SUF").Range("B32")), "TestRef"
Also habe ich den Sub TestRef in ein Modul gepappt. Darin hab ich jetzt wie folgt versucht den Sub in der Userform zu starten:
Sub TestRef()
Call UserForm1.comRefresh_Click
End Sub
Das geht leider auch nicht... Ich erhalte nun die Meldung "Objekt erforderlich" ...
Wie bring ich das ganze auf die Reihe?
Grüsse,
Aiv
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 282369
Url: https://administrator.de/contentid/282369
Ausgedruckt am: 18.11.2024 um 03:11 Uhr
15 Kommentare
Neuester Kommentar
Moin,
du kannst auch in der Form eine Public Sub erstellen die du mit deinem Button in der Form aufrufst.
In anderen Subs kannst du dann mit
dein Update triggern. Geht einwandfrei, wenn du willst schicke ich dir ein Beispieldokument.
Gruß jodel32
du kannst auch in der Form eine Public Sub erstellen die du mit deinem Button in der Form aufrufst.
In anderen Subs kannst du dann mit
Userform1.DeinePublicSub
Gruß jodel32
Zitat von @aivilon:
Moin Jodel
Hmm... hab ich in diesem Sinne auch schon probiert.
der comRefresh_Click ist in dem Sinne der Sub des Buttons. Auch mit comRefresh alleine geht es nicht.
Nein, dur darfst nicht die Private Sub des Buttons aufrufen sondern eine extra Public Sub erstellen:Moin Jodel
Hmm... hab ich in diesem Sinne auch schon probiert.
Call UserForm1.comRefresh_Click
Private Sub comRefresh_Click()
Update
End Sub
Public Sub Update()
' hier dein Code den du ansonsten im Button-Code aufrufst
End Sub
und dann mit
UserForm1.Update
Dokument unterwegs ...
You're mixing private an public Subs
Es kann dein Makro nicht finden weil es eben nicht public deklariert wurde ...
Sub TestRef()
muss
Pubilic Sub TestRef()
lauten ... dann lüppt das.
Gruß grexit
Es kann dein Makro nicht finden weil es eben nicht public deklariert wurde ...
Sub TestRef()
muss
Pubilic Sub TestRef()
lauten ... dann lüppt das.
Gruß grexit
Weiteres Demo-Dokument unterwegs an deine Mail ...
Das Problem ist doch nicht, dass die Sub nicht gefunden wird! Er meldet "Objekt erforderlich". Das kann nur sein, dass "UserForm1" in "TestRef" nicht bekannt ist bzw. nicht initialisiert ist.
Man kann, meines Wissens, auch in VBA nicht einfach aus einem Modul oder Klasse auf eine Form zugreifen, welche diesem Modul nicht irgendwie refernziert wird. Also entweder mit allen Methoden in der Form bleiben, oder die Form in einer Variable übergeben.
Man kann, meines Wissens, auch in VBA nicht einfach aus einem Modul oder Klasse auf eine Form zugreifen, welche diesem Modul nicht irgendwie refernziert wird. Also entweder mit allen Methoden in der Form bleiben, oder die Form in einer Variable übergeben.
Man kann, meines Wissens, auch in VBA nicht einfach aus einem Modul oder Klasse auf eine Form zugreifen, welche diesem Modul nicht irgendwie refernziert wird.
Doch kann man, weil die Form Public erzeugt wird...https://drive.google.com/file/d/0B_Oqbs4tcHfrYTJ6NGNSbS1oU1U/view?usp=sh ...
Dann mach bitte deine Mail-Adresse noch unkenntlich, außer du brauchst uneingeladene Gäste
G. g.
G. g.