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

Aufruf Private Sub in einer Klasse

Aufruf Private Sub in einer Klasse
21.01.2024 19:29:07
Ben
Hallo Zusammen!

Ich habe eine Klasse C mit zwei Methoden

Public sub A(x,y)
Call B(x)
end sub

Private Sub B(x)
...
end sub

Ein Test könnte aussehen
Dim test as C
set test = New C
Call test.A(1,2)

Warum geht das nicht?
Fehler: Methode nicht gefunden.
Vielen Dank und viele Grüße

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aufruf Private Sub in einer Klasse
22.01.2024 07:09:39
Oberschlumpf
Hi,

und was sollen wir dir jetzt erzählen?
Du zeigst uns n bisschen Code, aber wir wissen null davon, in welcher Beziehung/Abhängigkeit die Codeschnipsel zueinander stehen.
Du schreibst etwas von Klasse, aber wir wissen nicht, ob du mit "Klasse" wirklich das Richtige meinst.

Kannst du uns bitte per Upload eine Bsp-Datei mit Bsp-Daten und deinem Code zeigen?

Ciao
Thorsten
AW: Aufruf Private Sub in einer Klasse
22.01.2024 11:43:10
Ben

Hallo Thorsten,

es ist ein Pseudo-Code.
Und natürlich meine ich mit Klasse Klasse.
Der Pseudo-Code ist auch vollständig und zeigt genau, was geschehen soll.
Der Code kann auch genauso ausgeführt werden.
Der Fehler ist genau angegeben.

VG
Anzeige
AW: Aufruf Private Sub in einer Klasse
22.01.2024 16:51:23
Oberschlumpf
Hi,

na, wenn das alles so ist, wie du schreibst, bin zumindest ich nicht VBA gut (genug), so kann ich ohne eine Datei von dir leider nicht helfen (by the way...du kannst dir ja auch mit Datei nicht helfen).
Aber is ja nich schlimm - in Ansätzen bist du ja schon weitergekommen...Gegenfrage:

wie heißen denn die Wörter...
Public
Private
...auf Deutsch?

Ciao
Thorsten
AW: Aufruf Private Sub in einer Klasse
22.01.2024 18:05:29
Ben
Hi.

So wie ich es geschrieben habe:
Anscheinende kann ich private-Methoden mit über Me.Methode aus der Klasse heraus aufrufen, public-Methoden dagegen schon.
Das erschließt sich mir nicht.
Und was soll das mit private und public auf Deutsch?
Du konntest die Frage doch auch nicht beantworten. Dann spiel dich bitte nicht auf und werde nicht herablassend.
Wenn man gleich als blöd hingestellt wird, frage ich in Zukunft lieber eine KI. Die ist immer höflich.
Ist mir bisher in diesem Forum auch nicht untergekommen.

VG
Anzeige
AW: Aufruf Private Sub in einer Klasse
22.01.2024 18:33:33
Oberschlumpf
Hi Ben,

noch mal:

Wer sich eine qualifizierte Antwort wünscht, muss nicht, sollte aber durchaus eine qualifizierte Frage stellen
(auch dieser Satz ist von mir - nicht - herablassend gemeint, sondern...so wie auch du schreibst: genau so, wie er da steht)

im Detail:
Du kannst dein Problem nicht MIT Datei lösen - und DAS ist auch völlig ok! Denn natürlich auch ich, du, er, sie, es, wir alle....wissen niemals alles!

Aber unschön finde ich, wenn du schon - mit Datei - nicht weiterkommst, dann ist es, so finde ich - nicht qualifiziert - wenn du von uns erwartest, dass wir dir - ohne - Bsp-Datei helfen (sollen).

Und nun zu deinem letzten Beitrag:

Zitat 1: "...Anscheinende kann ich private-Methoden mit über Me.Methode aus der Klasse heraus aufrufen..."
Was denn nun? Kannst du nun doch private Subs über Me... aufrufen? In der Antwort davor hattest du noch geschrieben, dass das nicht geht...

Zitat 2: "...Du konntest die Frage doch auch nicht beantworten..."
Stimmt, hast du recht - der Grund: weil mir eben von dir eine Bsp-Datei mit Bsp-Daten und deinem Code fehlt.

Ich hab mal wem anders geholfen...mit Klassenprogrammierung:
Datei enthält nur 1 Userform...und natürlich den ganzen Code.
Aber im Userform kein einziges Control!

Per Code (unter anderem Klassenprogrammierung) hab ich dann für und eben im Userform bis zu 50 CommandButton erzeugt!
Und mit nur einem einzigen Makro (in der Klasse) habe ich per Code all diese CommandButton fehlerfrei gesteuert.
Der, dem ich half, hat sich sehr gefreut, weil all seine Fragen/Probleme beantwortet waren...und ich...ich hab mich natürlich genau so gefreut.

Zitat 3: "...Und was soll das mit private und public auf Deutsch?..."
Tja, hättest du dir mal die Mühe gemacht, dann hättest du die Frage nicht stellen müssen.

public in Deutsch öffentlich
private in Deutsch privat

...bedeutet...
Für Klassenprogrammierung müssen die von dort aufrufenden Makros als öffentlich, also public, deklariert sein.

Nun solltest du eigentlich dein Problem lösen können.
Nein? Nicht schlimm, im Internet gibt es so viele Bsp-Codes, in denen Klassenprogrammierung sehr gut erklärt wird; auch ich hab das eine oder andere Bsp-Makro zum Verstehen genutzt, damit ich dem Anderen, siehe Zitat 2, helfen konnte.

Ach ja...
Zitat 4: "...Ist mir bisher in diesem Forum auch nicht untergekommen..."
Jo, wie man in den Wald "reinruft"...siehe alles oberhalb von Zitat 1.
Aber unabhängig davon: Du bist im tollsten Excel-Forum, dass ich kenne! Weiterhin viel Spaß + Erfolg.

Ich wünsch dir n schönen Abend...und bin neugierig, ob ich auch hier eine Antwort von dir erhalte.

Ciao
Thorsten
Anzeige
AW: Aufruf Private Sub in einer Klasse
22.01.2024 11:00:13
Pappawinni
Keine Ahnung was du da vor hast.
Du solltest dich aber wohl einmal mit den Namenskonventionen von VBA befassen.
Eine Klasse namens C sollte nicht existieren bestenfalls clsC, was aber auch noch weniger als Nichts erzählt.

Das spukt jedenfalls mal was aus...



'clsC
Public Sub A(x, y)
Call B(x)
End Sub

Private Sub B(x)
Debug.Print x
End Sub




'modul1
Sub Unit()
Dim test As clsC
Set test = New clsC
Call test.A(1, 2)
End Sub

Anzeige
AW: Aufruf Private Sub in einer Klasse
22.01.2024 15:13:39
Ben
Hallo Zusammen,

ich habe es herausgefunden.
Innerhalb der Klasse kann ich publich-subs mit Me.xxx aufrufen.
Private-subs dagegen nicht.
Warum ist das so?

VG

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige