habe mal wieder eine Sache, die mir ein Wochenende gekostet hat. Komme irgendwie nicht auf den richtigen Nenner. Ich vermute mal das ich wieder eine Kleinigkeit übersehe.
Hier mein Problem:
Ich bin immer noch an meiner Mitgliederübersicht in Excel über VBA dran. Ich habe eine Userform (uf1) mit ungefähr 700 Objekten (Label, Textboxen, Changeboxen). Wie bereits bei meinen 2 vorherigen Anfragen in diesem Forum (Ihr habt mir da prima weitergeholfen!) möchte ich die einzelnen Felder über eine passwortgeschützte Abfrage (Konfiguration) variabel für mich als zukünftiger Nutzer der Mitgliederverwaltung machen. Ich kann also Textboxen in ihrer Größe und Lage auf der uf1 anpassen. Dazu habe ich ein Tabellenblatt angelegt, auf dem alle wichtigen Daten der 700 Objekte aufgelistet sind.
Dabei habe ich über eine Routine alle uf1.controls.objekt.name in eine Spalte geschrieben. Das funktionierte auch alles einwandfrei. Jetzt brauche ich bei bestimmten sub`s eine Variable die ein gültiges Objekt ist.
Anders formuliert:
Ich müsste jetzt aus der Spalte den Namen auslesen und daraus das zu konfigurierende Objekt ansprechbar machen:
Beispiel:
In der Spalte steht der Name "Textbox22". Ich will diese Textbox in der Größe verändern und müsste diese über "uf1.Textbox22.high=120" ansprechen. Wie bekomme ich dieses hin. Ich habe über eine Verkettung ein Ergebnis zu erzielen versucht, leider ohne Erfolg: Objekt="uf1." & ws.cells(22,4). In dem Beispiel ist der Name "Textbox" in der celle 22,4 im Worksheet ws enthalten. Über dem Überwachungsfenster sehe ich wie VBA aus den von mir angegebenen Daten die Kette "uf1.textbox22" erstellt. Will ich nun mit objekt.high=120 den Wert des (meiner Meinung nach erstelltem Objekt; Objekt wurde von mir "as object" dimensioniert) verändern. VBA meckert dabei immer und sagt mir das es kein Objekt in uf1 erkennt.
Was mache ich falsch?
Würde mich über einen Tip bzw. Denkanstoß sehr freuen. Manchmal ist es wirklich so, dass man vor lauter Bäumen keinen Wald sieht.
Mit freundlichen Grüßen,
Helmut Palmen