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

Variabel in der Private Sub Bezeichung ?

Variabel in der Private Sub Bezeichung ?
14.03.2018 11:45:09
earlycon
Hallo zusammen,
in meinem Code übergebe ich der Public-Variablen AZ die aktuelle Zeilennummer.
Nun habe ich in mehreren Zeilen TextBoxen, deren Name sich aus einer Bezeichnung + der jeweiligen Zeilennummer zusammensetzt (z.B. TextBox & AZ = Textbox100).
Mit
Private Sub Hier_Name_der_Textbox_lostFocus()
kann ich ja z.B. die Eingabe der TextBox überwachen.
Sieht jemand eine Möglichkeit, im oben genannten Beispiel den Namen der TextBox in der Deklaration eben aus dem Namen und der aktuellen Zeilennummer zusammenzusetzen ? Also wie oben z.B. in Zeile 100 (AZ = 100):
Private Sub TextBox & AZ
So müsste man nicht für jede TextBox die Private Sub Routine schreiben.
Vielen Dank für Eure Hilfe.
Gruß Stefan

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variabel in der Private Sub Bezeichung ?
14.03.2018 12:22:52
Daniel
Hi
nö, geht nicht.
du brauchst für jede TextBox eigene Eventmakros.
Die Alternative heißt "Klassenprogrammierung"
hier werden die betroffenen TextBoxen zu einer Klasse zusammengefasst und die für diese Klasse erstellten Eventmakros gelten dann für alle Objekte in dieser Klasse, so dass du die Makros nur einmalig erstellen musst (so ähnlich wie das BeforeDoubleClick-Event ja auch für alle Zellen gilt und nicht für jede zelle einzeln erstellt werden muss)
Probleme hierbei:
- ist nicht so ganz trivial (ich habs auch noch nicht verstanden und kanns dir daher auch nicht erklären)
- für die Klassenprogrammierung stehen nur ein Teil der Events zur Verfügung.
mein Persönlicher Workaround für deinen speziellen Fall wäre, dass ich
nur genau eine TextBox mit den benötigten Events erstelle und bei klick auf eine Zelle, die normalerweise eine solche TextBox enthalten würde, die TextBox dort hin verschiebe und den Focus auf die TextBox setze.
Dann reicht eine TextBox und ein Satz Eventmakros.
Außerdem belasten viele Steuerelemente deine Exceldatei und diese wird irgendwann träge.
Gruß Daniel
Anzeige
Dein 'WorkAround' wäre wohl ohnehin die bessere …
14.03.2018 13:03:47
Luc:-?
…Lösung, Daniel,
denn es ist wohl kaum anzunehmen, dass die Textboxen alle unterschiedlich aussehen sollen. ;-)
Gruß, Luc :-?
AW: Dein 'WorkAround' wäre wohl ohnehin die bes
14.03.2018 13:57:45
Daniel
Hi Luc
das Prinzip würde auch für unterschiedlich aussehende TextBoxen funktionieren.
man müsste dann im Verschiebemarko die Eigenschaften der TextBox in Abhängigkeit von der Zielzelle einstellen und in den Eventmakros ebenfalls entsprechend der Zielzelle reagieren.
Gruß Daniel
Das schien mir denn doch zu kompliziert ...
15.03.2018 03:17:35
Luc:-?
…für den Fragesteller zu sein, Daniel. ;-]
Luc :-?
AW: Das schien mir denn doch zu kompliziert ...
15.03.2018 08:21:52
Daniel
Meine Aussage war ja auch an dich gereichtet, als Antwort auf deinen Einwand.
Gruß Daniel
Das war kein Einwand, sondern eine Annahme, ...
15.03.2018 18:42:38
Luc:-?
…Daniel,
die anderenfalls genau so etwas, wie du jetzt ausgeführt hast, erfordern würde…
So etwas mache ich, wenn ich's benötige, wobei ich dann (ebenfalls) Textfelder bevorzugen würde, denn die kann man sogar animieren (analog PPoint).
Luc :-?
Anzeige
AW: Variabel in der Private Sub Bezeichung ?
14.03.2018 13:16:27
Rainer
Hallo Stefan,
schau dir mal diese Mappe an:
https://www.herber.de/bbs/user/119770.xlsm
Wenn man die Zeilen kopiert, dann entstehen neue Buttons, die sich aber alle das gleiche Makro teilen. Es muss nichts neu erstellt werden. Bei einem Klick kann der Button über seine .Top Eigenschaft seine Zeilennummer ausgeben. Das wäre für deinen Fall nutzbar, wenn du nach der Eingabe in die Textbox den Button klickst. Der "Trick" dahinter ist, dass es Formen(Shapes) sind die als Button benutzt werden, keine ActiveX-Buttons. Da weißt man das Makro einmal zu und gut, nicht jeder Button hat sein eigenes Click Event.
Aber mal andersrum gedacht, warum brauchst du die Textbox?
Kannst du nicht auch direkt in die Zellen schreiben und über Worksheet_Change Events deine Prozedur aufrufen? Dann hast du ja mit Target.Row schon deine Zeilennummer parat.
Gruß,
Rainer
Anzeige
AW: Variabel in der Private Sub Bezeichung ?
14.03.2018 14:10:48
earlycon
Hallo Rainer,
vielen Dank, ich schaue mir die Datei mal an, sobald ich hier etwas Zeit habe.
Ich habe mir in Excel ein Formular gebaut und da passt das nicht immer so mit den Zellen.
Deshalb habe ich die ActiveX-TextBox für die Eingabe einer Zahl benutzt und wollte nun mit lostFocus überwachen, wenn die TextBox verlassen wird.
Viele Grüße
Stefan
AW: Variabel in der Private Sub Bezeichung ?
14.03.2018 14:06:50
earlycon
Danke Daniel für Deine Rückmeldung.
So etwas ähnliches habe ich mir schon gedacht.
Klassenprogrammierung ist etwas zu hoch für mich... :-)
Viele Grüße
Stefan

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige