wie ruft man Private Subs von einem anderen Modul/Makro aus auf und muß mam sie in ein Modul oder ein Klassenmodul schreiben? Bin Anfänger darin und bekomme sie nicht mal testweise im Editor zum Laufen.
Schönen Dank für Eure Hilfe
Dieter
Private Sub ist z.B. Selection_Change
Workbook_open.
Ansonsten
sub Makro1()
hallo <<<<<<Aufruf eines Makros
End Sub
Private Sub TPRDataStream_Bezahlt(ByVal SymbolNr As Long, ByVal Kurs As Single, _
ByVal Volume As Single, ByVal Zeit As Date)
If SymbolNr = 79514 Then Range("A1").Value = Kurs
End Sub
Private Sub ist leider so "private", daß es sich nicht mal durch blau anlegen im VBA-Editor ausführen läßt, aber irgendwie
müssen sie sich doch ausführen lassen und auch per VBA aus ansprechen lassen - hoffe ich ...
Danke und Grüße
Dieter
Private Sub nur aus dem selben Modul ansprechen.
Dein Beispielcode:
Private Sub TPRDataStream_Bezahlt(ByVal SymbolNr As Long, ByVal Kurs As Single, _
ByVal Volume As Single, ByVal Zeit As Date)
If SymbolNr = 79514 Then Range("A1").Value = Kurs
End Sub
Was soll da Volume und Zeit, die spielen da gar keine Rolle?
Ulf
Private Sub läßt sich also aus dem gleichen Modul anspreche, aber wie?
Ein schlichtes Call sagt Sub nicht definiert, schreibe ich den Text des private in ein anderes Sub hinein, (oben private Sub, unten End Sub
) gibt es Fehlermeldungen, weil man halt nicht zwei in eins schreiben soll.
Private Sub und die aufrufende Sub müssen jeweils im
<b>selben</b> Modul stehen.
Wichtig ist, dass du verstehst, wozu eine
Private Sub überhaupt gut ist.
Option Explicit
Private Sub teste01()
MsgBox "
Private Sub teste01 wurde gestartet!"
End Sub
Sub ruf_teste01()
Call teste01
End Sub
Private Sub teste02(text As String, wert1 As Long, wert2 As Long)
MsgBox "
Private Sub teste02 wurde gestartet!" & Chr(10) & _
"Text: " & text & Chr(10) & _
"Wert1: " & wert1 & Chr(10) & _
"Wert2: " & wert2
End Sub
Sub ruf_teste02()
Call teste02("Übergebener Testtext", 12345, 98765)
End Sub
Ulf
Private Sub Workbook_Open()
MsgBox "Workbook_Open wurde aufgerufen"
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Target.Address
End Sub
Private Sub teste01()
MsgBox "
Private Sub teste01 wurde gestartet!"
End Sub
Sub ruf_teste01()
Call teste01
End Sub
Private Sub teste02(text As String, wert1 As Long, wert2 As Long)
MsgBox "
Private Sub teste02 wurde gestartet!" & Chr(10) & _
"Text: " & text & Chr(10) & _
"Wert1: " & wert1 & Chr(10) & _
"Wert2: " & wert2
End Sub
Sub ruf_teste02()
Call teste02("Übergebener Testtext", 12345, 98765)
End Sub
Private Sub Workbook_Open()
MsgBox "Workbook_Open wurde aufgerufen"
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Target.Address
End Sub
Private Sub teste01()
MsgBox "
Private Sub teste01 wurde gestartet!"
End Sub
Sub ruf_teste01()
Call teste01
End Sub
Private Sub teste02(text As String, wert1 As Long, wert2 As Long)
MsgBox "
Private Sub teste02 wurde gestartet!" & Chr(10) & _
"Text: " & text & Chr(10) & _
"Wert1: " & wert1 & Chr(10) & _
"Wert2: " & wert2
End Sub
Sub ruf_teste02()
Call teste02("Übergebener Testtext", 12345, 98765)
End Sub