Wer kann helfen ?

Hallo Experten,

wie realisiere ich ein Unterprogramm in VBA ?
Aus vergangenen Tagen kenne ich noch die Folge : GOSUB und RETURN.
In VBA habe ich bisher noch nichts vergleichbares gefunden. Im einzelnen sieht es so aus, das ich in Excel mehrere Steuerelemente habe, die alle auf die selbe Subroutine zugreifen.
Bis jetzt habe ich diese Subroutine in alle Prozeduren eingebaut, insgesamt 20 mal. Ich möchte nun ein Unterprogramm schreiben, auf das alle Prozeduren zugreifen und dann wieder in die ursprüngliche Prozedur zurückkehren ( ähnlich GOSUB und RETURN ). Wer kann mir da mit einem Beispiel helfen ?

Hoffende Grüße Peter

call Subroutine ([params])
Hallo Peter!

Das Pendant zu Gusub (Goto Subroutine) ist ein Call.

public sub main() ’ Das ist eigentlich auch schon eine Subroutine
Dim x as integer

x=5

Call Humptidumpti (x)
call Hugo
call Karli

end sub

private sub Humptidumpti(para as integer)

msgbox para
end sub

private sub Hugo()
msgbox „Hugo“

end sub

private sub Karli()

call Alles_Beenden()

end sub

Private sub Alles_beenden()

end

End sub

Dies ist nur ein Beispiel, das natürlich nicht viel Sinn ergibt. Call ist der gosub und end sub ist das Return. Man kann Call auch weglassen, IMHO ist aber ein Programm übersichtlicher, wenn man es verwendet.

Gruß

Gollum

Hallo Gollum,

ich habs’ ausprobiert und es klappt. Vielen Dank für deine schnelle Hilfe. Ich muss eben das alte BASIC in meinem Kopf noch auf das neue BASIC umstellen, manchmal eben nicht so einfach.

Dankbares Sternchen und Gruß
Peter

Hallo
Ergänzend zu dem anderen Artikel kann ich noch sagen , das es die Möglichkeit der Funktion gibt . Das Ergebnis der Funktion ist dann zum Beispiel true oder False für Erfolg , oder nicht .
Auch funktionieren Gosub und Return weiterhin , verwende ich aber nur innerhalb einer Subroutine .
Bei der Verwendung von Programmteilen für mehrere Formulare habe ich selber leichte Schwierigkeiten , da die Parent Eigenschaft nicht immer geht , also den Code in jedes Form kopieren geht notfalls auch .
Die Aufruferroutine kann seinen Namen übergeben , wobei mir die Verwendung des Strings des Aufrufernamens nur für eine if then else oder für eine Select case Angelegenheit verwendbar war .
Wenn man die Subroutine allgemein halten kann , kann man sie in ein Modul setzen , und von allen Form-Objecten aufrufen , als Funktion oder als Subroutine .

MfG

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

unglaublich
Da in diesem Brett mit Sternen gegeizt wird, werte ich diesen als ganz besonderen.

Danke

liebe Grüße

Gollum