Anzeige
Archiv - Navigation
296to300
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
296to300
296to300
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

16 automatisch erzeugte Label format ändern?

16 automatisch erzeugte Label format ändern?
24.08.2003 18:16:43
GraFri
Hallo
Habe in einer Userform mittels Code (Klassenmodul) zur Laufzeit 16 Label erzeugt. Diese 16 Label würde ich gerne auch mittels Code anders formatieren (Hintergrundfarbe). Komme aber nicht dahinter.
Hier der Code:


'------------------------------------------------------------------
'Code der Userform 'Userform1'
Option Explicit
Private oControlArray(16) As clsLabel
Dim n As Long
Dim Spalte As Long
Dim Zeile As Long

Private Sub UserForm_Initialize()
Dim cnt             As CommandBarControl
Dim neuLabel       As Control
'16 Label erzeugen und anordnen so formatieren
Spalte = 0: Zeile = 0
For n = 1 To 16
Set neuLabel = Me.Controls.Add("Forms.Label.1")
'Label formatieren und positionieren
With neuLabel
.Height = 20: .Width = 16
'Position
.Left = 12 + .Width * Spalte: .Top = 70 + .Height * Zeile
.BackColor = &HC0FFFF
Spalte = Spalte + 1
If Spalte = 4 Then
Spalte = 0
Zeile = Zeile + 1
End If
'Formatierung
Font = "Arial": .Font.Size = 12
.Visible = True
.Caption = n
End With
Set oControlArray(n) = New clsLabel
oControlArray(n).Initialise neuLabel, n
Next
Set neuLabel = Nothing
End Sub

'Die Hintergrundfarbe aller Label soll sich ändern

Private Sub cmdÄndern_Click()
' ???
' ???
End Sub

'
'------------------------------------------------------------------
'
'In einem Klasenmodul 'clsLabel'
Option Explicit
Option Compare Text
Private WithEvents zoLabel As MSForms.Label
Private zlIndex As Long
Dim oControl

Private Sub Class_Terminate()
Set zoLabel = Nothing
End Sub

Sub Initialise(oControl As Object, lControlIndex As Long)
zlIndex = lControlIndex
Select Case TypeName(oControl)
Case "Label"
Set zoLabel = oControl
Case Else
Stop 'Unregistrierter Type!
End Select
End Sub

Property Get Index() As Long
Index = zlIndex
End Property
'
'------------------------------------------------------------------

Code eingefügt mit Syntaxhighlighter 2.4

Vielleicht kann mir jemand helfen. Besten Dank.
Datei: https://www.herber.de/bbs/user/695.xls
mfg, GraFri

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

Betreff
Datum
Anwender
Anzeige
AW: 16 automatisch erzeugte Label format ändern?
24.08.2003 18:29:07
Hajo_Zi
Hallo GraFri
'------------------------------------------------------------------
'Code der Userform 'Userform1'
Option Explicit
Private oControlArray(16) As clsLabel
Dim n As Long
Dim Spalte As Long
Dim Zeile As Long

Private Sub UserForm_Initialize()
Dim cnt             As CommandBarControl
Dim neuLabel       As Control
'16 Label erzeugen und anordnen so formatieren
Spalte = 0: Zeile = 0
For n = 1 To 16
Set neuLabel = Me.Controls.Add("Forms.Label.1")
'Label formatieren und positionieren
With neuLabel
.Height = 20: .Width = 16
'Position
.Left = 12 + .Width * Spalte: .Top = 70 + .Height * Zeile
.BackColor = &HC0FFFF
Spalte = Spalte + 1
If Spalte = 4 Then
Spalte = 0
Zeile = Zeile + 1
End If
'Formatierung
Font = "Arial": .Font.Size = 12
.Visible = True
.Caption = n
.Name = "LBL_" & n
End With
Set oControlArray(n) = New clsLabel
oControlArray(n).Initialise neuLabel, n
Next
Set neuLabel = Nothing
End Sub

'Die Hintergrundfarbe aller Label soll sich ändern

Private Sub cmdÄndern_Click()
Dim ByI As Byte
For ByI = 1 To 16
Controls("LBL_" & ByI).BackColor = &H3399
Next ByI
End Sub

'
'------------------------------------------------------------------
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Zurzeit gibt es wieder Probleme mit der E-Mail Benachrichtigung.
Ich bekomme Mails zu Beiträgen an denen ich nicht beteiligt bin und zusätzlich noch Mails zu meinen eigenen Beiträgen.
Das Problem mit den eigenen Benachrichtigung kann gelöst werden durch Lösche und Neuanmelden. Dieses möchte ich aber nicht jeden Tag machen.
Um dieses Problem erstmal zu beseitigen habe ich die automatische Mailbenachrichtigung abgeschaltet.
Aus diesem Grunde ist es dem Zufall überlassen ob auf Rückfragen Antworten von mir kommen.

Anzeige
Danke - aber bei Schriftart ?
24.08.2003 19:57:58
GraFri
Hallo
Danke. Funktioniert mit der Hintergrundfarbe prima. Aber bei der Schriftart kommt eine Fehlermeldung? Warum?
Vielleicht kannst du mir nochmal helfen.
Danke GraFri

AW: Danke - aber bei Schriftart ?
24.08.2003 20:34:01
Hajo_Zi
Hallo GraFri
das Stand aber nicht in der Aufgabe. Ich habe es jetzt nochmal geprüft und keine Möglichkeit gefunden die Schriftart zu ändern. Dabei ist mir auch folgendes aufgefallen.
Font = "Arial"
' diese Anweisung wird nicht ausgeführt da sie sich nicht auf das Label bezieht
' es wird die Schriftart umgestellt und damit hat das nächste Steuerelement Arial
' das erste aber Tahoma oder andere
MsgBox neuLabel.Font
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.

Anzeige
Danke - Lösung gefunden
25.08.2003 07:19:48
GraFri
Hallo
Trotzdem Danke. Habe selber die Lösung gefunden.
Wenn man
Controls("Label_" & n).Font.Name = SchriftName
Controls("Label_" & n).Font.Charset = 2
eingibt, erfolgt die Schriftänderung. Warum das, kann ich auch nicht sagen.
mfg, GraFri

Danke für die Rückmeldung oT
25.08.2003 07:29:13
Hajo_Zi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige