Eigenschaften dynamisch erstellter Controls ändern =?ISO-8859-1?Q???=

03/01/2008 - 16:10 von Horst Heck | Report spam
Hallo zusammen,
möglicherweise hat jemand von euch nen Tip für mich!
Mit folgendem Code erstelle ich in einer UF verschiedene Controls zur
Laufzeit und lese Werte ein. Leider finde ich keinen Ansatz, die
Controls in ihren Eigenschaften zu veràndern, sprich
Backgroundcolor,Font, etc. Hab irgendwie ein Brett vorm Kopf :)




Dim ctl As Control
Dim ws As Worksheet
Dim i As Integer
Dim datdate As Date

datdate = Date

i = 0

For Each ws In ActiveWorkbook.Sheets
i = i + 1

Set ctl = Me.Controls.Add("Forms.CommandButton.1", "ctl")
ctl.Left = 18
ctl.Top = i * 21
ctl.Width = 175
ctl.Height = 20
ctl.Caption = ws.Name

Set ctl = Me.Controls.Add("Forms.Label.1", "ctl")
ctl.Left = 200
ctl.Top = i * 21
ctl.Width = 175
ctl.Height = 20
ctl.Caption = Worksheets(ws.Name).Range("E15").Value


Set ctl = Me.Controls.Add("Forms.Label.1", "ctl")
ctl.Left = 270
ctl.Top = i * 21
ctl.Width = 175
ctl.Height = 20
ctl.Caption = Worksheets(ws.Name).Range("E16").Value

Set ctl = Me.Controls.Add("Forms.Label.1", "ctl")
ctl.Left = 330
ctl.Top = i * 21
ctl.Width = 175
ctl.Height = 20
ctl.Caption = Worksheets(ws.Name).Range("E17").Value


Next ws




gruss horst
 

Lesen sie die antworten

#1 Melanie Breden
03/01/2008 - 16:52 | Warnen spam
Hallo Horst,

Horst Heck schrieb:
Hallo zusammen,
möglicherweise hat jemand von euch nen Tip für mich!
Mit folgendem Code erstelle ich in einer UF verschiedene Controls zur
Laufzeit und lese Werte ein. Leider finde ich keinen Ansatz, die
Controls in ihren Eigenschaften zu veràndern, sprich
Backgroundcolor,Font, etc. Hab irgendwie ein Brett vorm Kopf :)



vielleicht hilft dir folgender Code in die richtige Richtung:

Private Sub UserForm_Initialize()
Dim ctl As Control
Dim i As Long, j As Long

For i = 1 To ActiveWorkbook.Worksheets.Count
With Worksheets(i)
Set ctl = Me.Controls.Add("Forms.CommandButton.1", "ctl")
ctl.Left = 18
ctl.Caption = .Name
ctl.Name = "ctl1_" & i

Set ctl = Me.Controls.Add("Forms.Label.1", "ctl")
ctl.Left = 200
ctl.Caption = .Range("E15").Value
ctl.Name = "ctl2_" & i

Set ctl = Me.Controls.Add("Forms.Label.1", "ctl")
ctl.Left = 270
ctl.Caption = .Range("E16").Value
ctl.Name = "ctl3_" & i

Set ctl = Me.Controls.Add("Forms.Label.1", "ctl")
ctl.Left = 330
ctl.Caption = .Range("E17").Value
ctl.Name = "ctl4_" & i

' Positionen für alle Controls
For j = 1 To 4
Controls("ctl" & j & "_" & i).Top = i * 21
Controls("ctl" & j & "_" & i).Width = 175
Controls("ctl" & j & "_" & i).Height = 20
' Controls rot formatieren, wenn Datum in der Vergangenheit liegt
If .Range("E15").Value < Date Then
Controls("ctl" & j & "_" & i).BackColor = vbRed
End If
Next j
End With
Next i
End Sub


Mit freundlichen Grüssen
Melanie Breden

- Microsoft MVP für Excel -
www.melanie-breden.de

Ähnliche fragen