Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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
Inhaltsverzeichnis

Macro ausführen

Macro ausführen
26.04.2018 14:55:26
Siegfried
Hallo zusammen,
ich habe in dem Modulblatt einer UserForm (mdl_UF) allgemeinen Code (Stufe1) stehen.
In einem anderen Modul (mdl_AG) habe ich einen Testcode (StufenAufruf), in dem ich auf einen Code aus mdl_UF zugreifen möchte.
Geht das? Und wenn, wie muß ich das anstellen?
Bei meinem bisherigen Versuch mit Call Stufe1 komme ich nicht weiter.
Sub StufenAufruf()
Dim n1 As Integer
Dim AnzTN As Integer, AnzKombi As Integer
Dim RngNächsteZahlenSchweiz As Range
If ActiveSheet.Name = "Einzel" Then
AnzTN = Range("AnzahlEinzel.TN")
Else
AnzTN = Range("AnzahlDoppel.TN")
End If
AnzKombi = WorksheetFunction.Combin(AnzTN, 2)
Set RngNächsteZahlenSchweiz = Range(Cells(1, 1).Offset(1, AllSystInterimPart1), _
Cells(1, 1).Offset(AnzKombi, AllSystInterimPart2))
For n1 = 1 To 5
If WorksheetFunction.Count(RngNächsteZahlenSchweiz)  AnzTN Then
Call Application.Run("Stufe" & n1 & "_Test")
Cells(1, 1).Offset(0, AllSystInterimPart1) _
= WorksheetFunction.Count(RngNächsteZahlenSchweiz)
Cells(1, 1).Offset(0, AllSystInterimPart2) = "Stufe" & n1
'         Call Application.Run("Stufe" & n1)
End If
Next n1
End Sub
Gruß
Siegfried

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Macro ausführen
26.04.2018 15:05:25
mmat
Die Prozedur "Stufe1" muss "Public" deklariert sein
Der Aufruf erfolgt dann mit "mdl_UF.Stufe1"
AW: Macro ausführen
26.04.2018 15:17:55
Siegfried
H mmat
vielen Dank,
ich hatte schon die Befürchtung, dass ich überall einen expliciten Bezug auf die UF einfügen müßte.
Gruß
Siegfried
AW: Macro ausführen
26.04.2018 15:33:47
Siegfried
Sorry mmat
aber es funtioniert nicht.
Ich erhalte die gleiche Fehlermeldung (Macro existiert nicht oder ist deaktiviert).
Gruß
Siegfried
AW: Macro ausführen
26.04.2018 16:01:22
mmat
Hallo Siegfried,
Der Aufruf und das Userform sind doch in der gleichen Arbeitsmappe ?
AW: Macro ausführen
26.04.2018 16:23:12
Siegfried
Hi mmat,
ja
vorher:
Sub Stufe1()
.
.
.
End Sub
Public Sub Stufe1()
End Sub
Gruß
Siegfried
Anzeige
AW: ?
26.04.2018 16:47:35
mmat
Hallo Siegfried,
versteh ich nicht, aber gut. Vielleicht hilft folgender kleiner Test weiter:
Mach eine neue Arbeitsmappe
Füge ein Userform ein
Klicke auf das Userform um die Prozedur zu erzeugen und ergänze den Code (Nicht vergessen: "Public")
Public Sub UserForm_Click()
MsgBox "Hello World"
End Sub
Jetzt noch ein normales Modul mit folgendem Code:
Sub Test()
UserForm1.UserForm_Click
End Sub
Führe "Test" aus
So geht das, Falls nicht, dann weiss ich auch nicht weiter ...
Anzeige
AW: Macro ausführen
26.04.2018 16:26:16
Daniel
Hi
bei mir funktioniert der Auruf einer Prozedur in einem Userformmodul nur mit
Call UserformName.MakroName

aber nicht mit
Application.Run "Useformname!Makroname"
ich würde dir folgende Workarounds empfehlen:
Variante 1)
Verschiebe deine Markos "Stufe1" - "Stufe5" vom Userformmodul in ein allgemeines Modul.
dann klappt der der Aufruf mit Application.Run problemlos
Variante 2)
Fasse deine Makros "Stufe1" bis "Stufe5" zu einem Makro mit Parameterüberabe zusammen
dh aus
Public Sub Stufe1()
Code Stufe 1
End Sub
Public Sub Stufe5
Code Stufe 5
End Sub
wird
Public Sub StufeX(Stufe as Long)
Selcect Case Stufe
Case 1
Code Stufe 1
Case 2
Code Stufe 2
Case 3
Code Stufe 3
Case 4
Code Stufe 4
Case 5
Code Stufe 5
End select
End Sub
beim Aufruf bleibt der Makroname dann immer gleich, dh du kannst mit CALL aufrufen und die entsprechende Stufe wird als Parameter übergeben:
Sub StufenAufruf()
Call mdl_UF.StufeX(n1)
hätte ggf auch den Vorteil, dass du Programmteile, die für alle Stufen gleich sind, nur einmal programmieren musst und nur bei den Unterschieden mit Select Case differenziert programmierst.
Gruß Daniel
Anzeige
AW: Macro ausführen
26.04.2018 17:14:09
Siegfried
Hi Daniel,
vielen Dank, das mit dem verschieben von Stufe1 bis Stufe5 wäre auch meine nächste Idee gewesen, bzw. das verschieben des Testcodes in das Userformmodul.
Meine Anfrage zielte aber darauf, mit den bestehenden Verhältnissen klar zu kommen.
Gruß
Siegfried
AW: Macro ausführen
26.04.2018 17:58:14
Siegfried
Hi Daniel,
Danke, mit dem verschieben läuft es wie gewollt.
Gruß
Siegfried

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige