Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1920to1924
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

Application.Run aus Klassen

Application.Run aus Klassen
22.02.2023 08:00:19
Shouchen
Hallo allerseits,
ich würde gerne aus einer Klasse ein Sub namens "Begeistert" aufrufen, welche einen Integer aus "Board.Buffda" erhält.
Die kriritschen Zeilen sind hier:
Teiln.Begeistert Board.Buffda.Value
Application.Run Bu, Board.Buffda.Value
da ich diese, sofern in Bu exakt "Teiln.Begeistert" steht, so verstehe, dass diese gleichwertig sind.

Sub Buffen(Bu As String, Teila As String)
Bu = "Teiln." & Bu
Dim i As Integer
For i = 1 To Teil.Count
    Set Teiln = Teil(i)
    If Teiln.m_name = Teila Then
    
    Teiln.Begeistert Board.Buffda.Value
    
    Application.Run Bu, Board.Buffda.Value
    End If
Next
End Sub

In meinem String "Bu" steht exakt:
"Teiln.Begeistert", dennoch findet er das Macro nicht. Die Zeile darüber läuft aber durch.
Gibt es einen anderen Weg, das Ganze als String und somit fluide aufzurufen oder habe ich einen Denkfehler bei der Funktionsweise?
Vielen Dank im voraus für eure Hilfe. :)

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Application.Run aus Klassen
22.02.2023 09:56:25
Yal
Hallo Shouchen,
es kommt daruf an, ob "Teiln" eine klasse oder einen Modul ist. Ich gehe davon aus, dass es eine Klasse ist.
Anstatt die Prozeduren per Name anrufen zu wollen, wäre es besser, diese Name als Parameter zu übergeben:
Teiln.LokalLaufenLassen "Begeistert", Board.Buffda.Value
Dann findet in Teiln einen LokalLaufenLassen:
Public Sub LokalLaufenLassen(Was As String, ParamArray Params())
    Select Case LCase(Was)
    Case "begeistert": Me.Begeistert Params
    Case "ablehnend": Me.Anlehnend Params
    End Select
End Sub

Ansonsten musst Du dich damit beschäftigen, wie man benannte Eigenschaften in einer Klasse definieren und verwenden kann. Aber ich weiss nicht, ob es gut ist, Dich in diese Richtung zu bringen, weil es ist weit von "VBA Bescheiden". Ohne eine klares Bild über Objekt-orientierte Programmierung (und Pattern Design) würdest Du dir damit eine unstabile, sehr schwer wartbaren Code aufbauen.
VG
Yal
Anzeige
AW: Application.Run aus Klassen
22.02.2023 10:06:30
Shouchen
Hallo Yal,
vielen Dank für deine ausführliche und insbesondere hilfreiche Antwort.
Leider bin ich nicht so weit eingearbeitet, um benannte Eigenschaften "schön" zu definieren, aber deine angegebene Lösung, hilft mir sehr weiter.
Dadurch ist es mir möglich, mein Problem zu lösen und ich kann die Befehle Me. und Case nachzuschlagen und deren Funktion nachzulesen. :)
Vielen Dank nochmals
Shouchen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige