PDA

Vollständige Version anzeigen : Fehler bei Kompilieren. Variable oder ....


Kentucky
01.07.2014, 14:45
Hallo liebe VBA Experten,

ich möchte in einer Select Case Abfrage auf ein Modul springen.
Siehe folgenden Code:


Private Sub ListBox2_Click()

Dim strNummer As String
Dim strLiBo As String

strNummer = 14466 'strNummer ist eigentlich eine Public Variable, aber _
ich gebe sie jetzt hier direkt vor

If ListBox2.Value <> "" Then
ListBox2.Value = strLiBo
Select Case strNummer
Case "14466"
DINAufruf14466 strNummer, strLiBo
Case "1028 - 1"
DINAufruf1028 strNummer, strLiBo
End Select
End If

End Sub


Beim Ausführen kommt dann der Fehler: "Fehler beim Kompilieren. Variable oder Prozdur anstellte eines Moduls erwartet".

Wieso kann er in einer Select-Anweisung keine Werte an ein Modul übergeben?
Wie komme ich dann ans Ziel? Also einen Wert an eine ausgelagerte Prozedur zu übergeben?


Anbei eine abgespeckte Datei mit meinem Problem.


Im voraus schon einmal vielen Dank für eure Hilfe.


Beste Grüße

Kentucky

mumpel
01.07.2014, 15:12
Hallo!

Prozedur und Modul dürfen nicht den selben Namen tragen. Benenne eines der beiden um.

Gruß, René

EarlFred
01.07.2014, 15:13
Hallo Kentucky,

auf ein Modul springen.
Sei vorsichtig dabei! Wie schnell tut man sich oder dem Modul dabei weh! ;)

Im Ernst: Ein Modul kann man nicht aufrufen. Man kann eine Prozedur (Sub oder Function) aufrufen. Ein Modul ist bloß der "Sammeltopf", in dem Code enthalten ist.
Zudem: Modul- und Prozedurnamen dürfen nicht gleich heißen!

Ein Modul beginnt bei mir mit einem kleinen "m" vorangestellt, also
mDINAufruf14466 und mWordÖffnen. Das musst Du nicht genauso machen, ist nur ein Vorschlag.

Prozedurnamen müssen hingegen nur innerhalb eines Moduls eindeutig sein. Um bei doppelten Namen dennoch die richtige zu erwischen:
mDINAufruf14466.DINAufruf14466 strNummer, strLiBo
Analog dann bei den anderen Aufrufen verfahren.

Grüße
EarlFred

Kentucky
02.07.2014, 08:25
Hallo,

vielen Dank für die Antworten.
Ich hab das jetzt auch mit dem vorangestellten "m" gemacht. Und nach ein paar kleineren Flüchtigkeitsfehlern läuft das Programm jetzt so wie es soll.

Nochmals vielen Dank an euch beide!!!


Beste Grüße

Kentucky