Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
904to908
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
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Objekteigenschaften per Schleife

Objekteigenschaften per Schleife
12.09.2007 16:29:00
Rudiator
Hallo zusammen,
habe versucht mein Problem hier im Archiv ausfindig zu machen, bin aber leider nicht fuendig geworden.
Ich habe in einer Exceltabelle in einer Spalte die Objektbezeichnungen (z.B. "Application.CommandBars(1).Controls(1)"), in einer zweiten die jeweils zu ändernde Eigenschaft hinterlegt (z.B. Caption, ControlTipText).
Nun würde ich gerne die Liste der Objekte per Schleife durchgehen und die jeweils dazugehörige Eigenschaft anpassen:
For d = 6 To 900
With ThisWorkbook.Sheets("Sprache").Cells(d, 3).Value
.ThisWorkbook.Sheets("Sprache").Cells(d, 4).Value = ThisWorkbook.Sheets("Sprache").Cells(d,spalte).Value
End With
Next d
Mir is bewusst, dass ich mit "ThisWorkbook. .... .Value" lediglich eine Zeichenfolge auslese. Mir fehlt halt der Schritt der Umwandlung dieser Zeichfolge in ein Objekt sowie dass dem Objekt auch die entsprechende Eigenschaft zugewiesen werden kann.
'spalte ist eine Variable fuer den Spaltenindex aus der die Eigenschaft des Objektes geholt wird
'Objekte sind Multipages, CommandButtons, Labels ...

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das geht so nicht, sondern ist deutlich...
12.09.2007 20:13:33
Luc:-?
...komplizierter, aber nicht unmöglich, Rudi!
Du musst daraus einen abarbeitbaren Code machen. Und das geht nur, indem du aus einer Subroutine heraus eine andere Subroutine erzeugst, die die entsprechende Anweisung enthält, und die dann aufrufst.
Gruß Luc :-?

AW: Das geht so nicht, sondern ist deutlich...
12.09.2007 23:01:13
Rudi
Hallo Luc,
guter Ansatz.
Code per Code erzeugen, abarbeiten und anschließend wieder löschen. Den erzeugten Code am besten in einem eigenen Modul, dann ist die Löschprozedur einfacher, bzw. das komplette Modul löschen.
Gruß
Rudi
Eine Kuh mach muh, viele Kühe machen Mühe.

Anzeige
Ja, Rudi, danke... Ich mache das u.a. auch...
13.09.2007 04:13:00
Luc:-?
...um assistierende Prozeduren zu erzeugen, bspw einfache Event-Prozeduren. Dann muss der (unerfahrene) User das nicht extra beachten!
Gruß Luc :-?

Frage an Luc
13.09.2007 08:12:22
Oberschlumpf
Hallo Luc
Mich interessiert das Thema auch, Code durch Code zu erzeugen.
Wie das geht, bekomm ich wohl alleine bzw durch das Archiv heraus, meine Frage aber ist...
Wie schaffst du es, dass ein User mit deiner Code-durch-Code-Prozedur arbeiten kann, wenn sein XL nicht dem VBA-Projekt vertraut?
Oder denke ich gerade in eine ganz falsche Richtung?
Ciao
Thorsten

Dann läuft ja auch das ganze Projekt nicht!
13.09.2007 15:00:03
Luc:-?
Hallo Thorsten,
die assistierenden Subroutinen erzeuge ich aus meinem AddIn heraus im aktuellen Projekt (das AddIn ist natürlich geschützt, was übrigens auch fast alle Leseaktionen verhindert!). Das setzt bei Event-Prozeduren voraus, dass die zu erzeugende nicht schon vorhanden ist! In solchen Fällen werden die relevanten Zeilen auskommentiert (mit Hinweis) eingefügt oder es wird eine Textdatei zum Selber-Einfügen ausgegeben*. Für alle anderen generierten Prozeduren füge ich ein Modul mit eindeutigem Namen ein, das diese dann enthält.
Gruß Luc :-?
* Deshalb bin ich auch kein Anhänger ellenlangen Codes in Event-Prozeduren, sondern benutze diese idR nur als eine Art "Verteiler/Selektor" für UP-Aufrufe.

Anzeige
AW: Dann läuft ja auch das ganze Projekt nicht!
13.09.2007 16:38:48
Oberschlumpf
hi Luc
Danke für die Antwort.
Nun weiß ich, wie du es schaffst.
Ich verwende die Events auch lieber nur, um Subs oder Functions in allg. Modulen aufzurufen.
Thx & Ciao
Thorsten

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige