Office: Sub in einem Sub ausführen

Helfe beim Thema Sub in einem Sub ausführen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe eine Funktion, die über ein UserForm (UserForm5) startet Code: Private Sub btn_Werte_uebernehmen_Click()... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von ms-office-nutzer, 23. Mai 2016.

  1. Sub in einem Sub ausführen


    Hallo zusammen,

    ich habe eine Funktion, die über ein UserForm (UserForm5) startet
    Code:
    Innerhalb dieser Funktion soll eine andere Funktion (siehe nachfolgend) aus einem andern UserForm (UserForm1) gestartet werden.
    Code:
    Ich habe wirklich keine Ahnung wie ich das bewerkstelligen kann, da mir an dieser Stelle noch die Kenntnisse fehlen. Ist das überhaupt möglich? Wenn ja, wie?

    Viele Grüße

    :)
     
    ms-office-nutzer, 23. Mai 2016
    #1
  2. Moin,

    völlig losgelöst von der Sinnhaftigkeit: mach die Private Subs zu Public, dann geht es formal. Ob - und wie - eine Sub läuft, die auf einer nicht geöffneten Userform sitzt, weiß ich wirklich nicht, deren Felder lassen sich bestimmt nicht ansprechen. Probieren geht über studieren ...

    Gruß
    Ralf
     
    drambeldier, 25. Mai 2016
    #2
  3. schreib deinen code in einer Sub.
    dann starte die Sub beim click-ereignis des einen oder des anderen Buttons.

    Code:
     
    rushifell, 25. Mai 2016
    #3
  4. Sub in einem Sub ausführen

    Hallo rushifell,

    danke für die Erläuterung. Wenn ich dich richtig verstanden habe, müsste es so funktionieren:
    Code in UserForm1
    Code:
    Code in UserForm5
    Code:
    Dabei stellt mir jedoch noch eine Frage. Woher weiß er, dass er dann die Funktion "btn_ja_Click" von UserForm1 verwenden muss? Denn der obenstehende Code würde dann in der UserForm5 laufen. Des Weiteren ist die Funktion "btn_ja_Click" auch in UserForm3 und UserForm4 vorhanden. Der Name der Funktion "btn_ja_Click" ist dort gleich, aber der Inhalt der Codes ist verschieden. Er muss also unbedingt wissen, dass er "btn_ja_Click" von UserForm1 verwenden muss. Wie bringe ich ihm das bei?

    Beste Grüße
     
    ms-office-nutzer, 25. Mai 2016
    #4
  5. Hallo ms-office-nutzer,
    ...verstehe ich jetzt nicht...mal ganz abgesehen davon
    ...mußt Du Deine Sub's doch dann auch in JEDER Userfom hinterlegen...

    Gruß
    Thomas
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    XDuckX-Fan, 25. Mai 2016
    #5
  6. nein. schreibe den gewünschten code nicht in der ereignisprozedur des steuerelementes (form -> button -> clickereignis), sondern in einer unabhängigen prozedur (oder auch sub, meint das gleiche). dann kannst du genau diese prozedur von irgendwo wieder aufrufen, auch aus der "anderen" form mir dem click-ereignis des "anderen" buttons.

    Unbenannt.png
     
    rushifell, 25. Mai 2016
    #6
  7. Danke für die Erläuterungen bis hierher. Ich sehe, dass es mir doch ein bisschen komplexer erscheint, als ich dachte.

    Ich hänge mal ein Beispieldatei mit an. Das macht mein Anliegen vielleicht deutlcher.

    @rushifell
    Meinst du ich soll die Prozedur als Public in ein Modul schreiben und dann diese dort aufrufen?
     
    ms-office-nutzer, 25. Mai 2016
    #7
  8. Sub in einem Sub ausführen

    Hallo Name?,

    vielleicht beschreibst Du mal das Ziel, das Du erreichen willst, und nicht nur Deine bisher vergeblich beschrittenen Wege.

    Wenn der Button schon "Wert übernehmen" heißt, vermute ich sehr stark, dass es weder notwendig noch sinnvoll ist, dafür auf Prozeduren einer anderen Userform zurückzugreifen.

    Grüße
    EarlFred
     
    EarlFred, 25. Mai 2016
    #8
  9. check!

    Sub in Sub.xlsm

    ich glaube, du hast grundlegende prinzipien des programmierens nicht richtig verstanden. wenn du nicht weisst, wie, zu welchen bedingungen und zu welchem zeitpunkt was passiert, wird dich das in deiner entwicklung als hardcore-programmierer stark behindern.
     
    rushifell, 25. Mai 2016
    #9
  10. Hallo rushifell,

    wirklich kein leichtes Thema für mich. Auch wenn auf meinem Zähler aktuell 86 Beiträge stehen, sehe ich mich noch am Anfang der Lernkurve.

    Jetzt geht es aber schon in die Richtung nach der ich gesucht habe. Dankeschön.

    Ich habe verstanden, dass Public Subs von allen Modulen einer Mappe aufgerufen werden können. Wie ist es aber wenn da weder Public noch Private steht? Wie du es z. B. in deiner angehängte Excel-Datei getan hast:
    Code:
    Wird das dann automatisch als Public interpretiert? Ich hoffe, ihr könnt mir nochmal auf die Sprünge helfen?

    Viele Grüße
     
    ms-office-nutzer, 26. Mai 2016
    #10
  11. Hi,

    ohne Qualifikation heißt private, dh die Sub ist immer nur in dem Modul bekannt, in dem sie steht.

    Eine Ereignis-Prozedur wird von VBA immer als private angelegt, weil ihr nur die Elemente der Userform bekannt sind, zu der sie gehört. Es wäre deshalb sinnlos, eine Ereignisprozdur aufzurufen, die in einer anderen Userform definiert ist.

    Prozeduren, die von unterschiedlichen Stellen gerufen werden können sollen, gehören nicht in eine Userform, sondern in ein eigenes Modul. Und dort müssen sie natürlich als public vereinbart werden.

    Gruß
    Ralf
     
    drambeldier, 26. Mai 2016
    #11
  12. Hallo Ralf,

    siehe: Sub-Prozeduren - Visual Basic
    Dieser Grundsatz gilt in VB5, Vb6 & auch in VBA (da fehlen aber die Strukturen)

    Gruß von Luschi
    aus klein-Paris

    PS: da nützt auch ein 'Option Private Module' nichts!
     
    Luschi, 26. Mai 2016
    #12
  13. Sub in einem Sub ausführen

    Danke, Danke, Danke. *Smilie
     
    ms-office-nutzer, 26. Mai 2016
    #13
Thema:

Sub in einem Sub ausführen

Die Seite wird geladen...
  1. Sub in einem Sub ausführen - Similar Threads - Sub Sub ausführen

  2. "Eigene"excel-Funktion innerhalb einer Sub verwenden

    in Microsoft Excel Hilfe
    "Eigene"excel-Funktion innerhalb einer Sub verwenden: Hallo, ich möchte innerhalb einer Sub eine Berechnung mittels einer selbst erstellten Funktion durchführen. Wie kann ich die Funktion aufrufen? Grüße Reinhard Beispiel zum Verständnis Function...
  3. Problem mit Private Sub Worksheet_Change

    in Microsoft Excel Hilfe
    Problem mit Private Sub Worksheet_Change: Hallo, ich komme nicht weiter mit meiner Worksheet_Change. Ich muss sagen, ich bin kein VB Profi - eher Laie mit Grundverständnis in Coding. Was möchte ich (Erwartung): 1. Wenn eine gewisse Zelle...
  4. Listenfeld in Word 2016

    in Microsoft FrontPage Hilfe
    Listenfeld in Word 2016: Hallo, leider konnte ich keinen Eintrag zu meinem Problem finden: Wegen der größeren Länge von Texten kann ich nicht nur einfach eine listbox verwenden. Die listbox zur Auswahl der Alternativen...
  5. Function Sub und Makro

    in Microsoft Excel Hilfe
    Function Sub und Makro: Hallo zusammen. Ja, auch ich verzweifle gerade. Ich habe folgendes Problem: Da ich quasi ein Makro innerhalb einer Wenn-Dann-Bedingung starten möchte, muss ich den VBA Code in einer Function...
  6. VBA Spalten aus- und einblenden trotz Blattschutz

    in Microsoft Excel Hilfe
    VBA Spalten aus- und einblenden trotz Blattschutz: Guten Tag Ich habe eine Übersicht, in dem die Urlaubszeiträume meiner Kollegen eingetragen werden sollen. Neben Namen, Vornamen und Zeitraum sollen noch weitere spezifische Daten eingetragen...
  7. Code, SUB ausführen wenn ich in eine Zelle klicke

    in Microsoft Excel Hilfe
    Code, SUB ausführen wenn ich in eine Zelle klicke: Also ich bräuchte einen Code, der mir etwas ausführt wenn ich in die Zelle klicke. also wenn ich in Zelle B2 klicke, soll er ein programm ausführen...Sub Haus1() 226378
  8. Zwei Subs oder Funktionen geichzeitig ausführen

    in Microsoft Excel Hilfe
    Zwei Subs oder Funktionen geichzeitig ausführen: Hallo, ich würde gerne zwei Subs gleichzeitig ausführen lassen. Doch leider hat meine Suche nach Nebenläufigkeit mit VBA nichts ergeben. In der einen Sub wird eine Grafik animiert, in der...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden