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

Alle Control-Eigenschaft per Schleife abfragen

Alle Control-Eigenschaft per Schleife abfragen
Martin
Hallo,
ich generiere in einer UserForm verschiedene Controls (OptionButton, TextBox, Label) dynamisch über "Controls.Add". Gerne würde ich die Eigenschaften bereits bestehender Controls "kopieren". Können entweder bereits existierende Controls kopiert oder deren Eigenschaften einfach übertragen werden? Es geht mir nur darum nicht alle Eigenschaften (wie Font, BackColor, BackStyle, BorderColor, ForeColur usw.) einzeln abfragen zu müssen.
Viele Grüße
Martin

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Alle Control-Eigenschaft per Schleife abfragen
05.06.2012 18:40:48
Uduuh
Hallo,
du kannst keine Controls kopieren und eine Schleife über die Eigenschaften geht auch nicht.
Gruß aus’m Pott
Udo

AW: Alle Control-Eigenschaft per Schleife abfragen
05.06.2012 18:43:29
ransi
Hallo
Was für Controls willst du denn kopieren ?
ransi
AW: Alle Control-Eigenschaft per Schleife abfragen
05.06.2012 18:53:27
Martin
Hallo ransi,
für mein jetziges Projekt müsste ich TextBoxen, OptionButton und Label in einer UserForm kopieren. Es interessiert mich aber auch, ob und wie ComboBoxen und CheckBoxen kopiert werden können.
Viele Grüße
Martin
AW: Alle Control-Eigenschaft per Schleife abfragen
Ulf
Hi Martin,
ich weiß nicht ob ich dich falsch verstehe, kopieren von Elementen
in einem UserForm : anklicken Strg C - String V fertig die Kopie mit den
gleichen Eigenschaften, dann nur noch richtig platzieren.
Eigenschaften über Schleifen ändern mache ich zB. so:
For i = 1 To 8
UserForm_Dok.Frame_Ausw_Dru_Anz.Controls("CheckBox" & CStr(i)).Value = True
Next
CheckBox1, CheckBox2, bis CheckBox8 werden "true". Das geht auch mit jeder anderen
Eigenschaft (Backcolor, ... )
Haben die Namen der Controls keine lf. Nr. wie in dem Beispiel oben geht auch so etwas:
Dim objControl As Control
me_Form.BackColor = RGB(255, 255, 255)
For Each objControl In me_Form.Controls
objControl.BackColor = RGB(255, 255, 255)
Next
So ändere ich den Hintergrund vor dem Drucken.
Ulf
Anzeige
AW: Alle Control-Eigenschaft per Schleife abfragen
06.06.2012 13:55:07
Martin
Hallo Ulf,
ja, du hast mich falsch verstanden. Ich generiere die Controls dynamisch per VBA:
Set ctrNewField = Me.Controls.Add("Forms.TextBox.1", "Test", True) 
Nun wollte ich den Controls nicht jede Eigenschaft einzeln zuweisen müssen:

With ctrNewField
.Height = ctrField.Height
.Width = ctrField.Width
.Left = ctrField.Left
.Top = ctrField.Top + 24 * (iCtr - 1)
.SpecialEffect = ctrField.SpecialEffect
.TextAlign = ctrField.TextAlign
.Visible = ctrField.Visible
.BackStyle = ctrField.BackStyle
'usw.
Ich hatte einfach gehofft, dass ich die Eigenschaften irgendwie über eine einfache Schleife übertragen könnte, also in etwa so:
        For Each Eigenschaft In ctrField.Properties
ctrNewField.Eigenschaft = ctrField.Eigenschaft
Next
Das Feld "ctrField" wäre also die bereits existierende Vorlage gewesen, von der alle Eigenschaften hätten übernommen werden sollen.
Leider klappt das nicht. Ist aber alles nicht so wild, nun frage ich die Eigenschaften eben doch "undynamisch" alle einzeln ab. Ist zwar etwas mehr Schreibarbeit, führt aber auch zum Ziel.
Viele Grüße
Martin
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige