Clever-Excel-Forum

Normale Version: UserForm Schriftfarbe ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo an alle,

ich habe erst vor kurzem mit Excel begonnen und komme bei diesem Problem nicht weiter:

Code:
Dim backerl As Integer
   Dim output() As Variant
   output = Array("B", "C", "D", "A", "S")
   Dim x As Integer
   
   For backerl = 0 To anzahlBackerlTypes - 1
       With UserForm2
           For x = 0 To 4
               .Controls(output(x) & backerl + 1).Caption = backerlInformation(backerl, x)
               If backerlInformation(backerl, x) = "-" Then
                   .(output(x) & backerl + 1).ForeColor = vbRed
               End If
           Next x
       End With
   Next backerl
Mein Problem ist in der 11 Zeile (.(output(x) & backerl + 1).ForeColor = vbRed ), denn ich kann das Objekt nicht auf diese Weise ändern. Das Objekt ist ein Label in der UserForm2. Als Fehlermeldung bekomme ich entweder einen Syntaxfehler, oder das das Objekt Schreibgeschützt ist. Ich hoffe Ihr könnt mir helfen und wie gesagt ich habe erst vor ein paar Tagen damit angefangen...
Vielen Dank schon einmal im Voraus,
Freundliche Grüße,
Kevin
Moin Kevin!
Verrätst Du mir, warum Du eine Eigenschaft zur Laufzeit ändern willst?
Sowas macht gerade ein Anfänger doch im Eigenschaftsfenster.

Zeig mal die Datei, dann kann man Dein Problem besser nachstellen.

Gruß Ralf
Hallo Ralf

Ich will die Eigenschaft ändern, da ich diese als Standart auf Grün habe und nun, falls eine Zahl in meinem File nicht stimmt, dass dies dann rot ausgegeben wird.
Ich kann das File gerne online stellen, jedoch hat es zurzeit 325 Zeilen und ist dadurch extreme unübersichtlich. Alles andere funktioniert soweit und ich denke es ist einfacher, es so zu erklären, aus du bestehst darauf.

Ich haben ein Feld, in welchem Zahlen abgespeichter sind und an manchen Stellen ein "-" anstelle einer Zahl. Meine Standartausgabe ist auf Grün und nur wenn ein "-" Vorkummt sollte dieses Rot ausgegeben werden. Deswegen will ich dieses Objekt ändern. Als mein Problem beschränkt sich wirklich darauf das ForeColor Argument zu ändern. Meine Labels sind die Buchstaben im output Feld mit einem Zahl von 1-6 dahinter als z.B. B1. Wenn ich nun .B1.ForeColor=vbRed schreibe funktioniert es einwandfrei, allerdings will ich ja immer ein anderes Label ändern.
Es steht immes, das eine Klammer oder Argument erwartet wird, jedoch wenn ich eine mache funktioniert es ebenfalls nicht

Freundliche Grüße,
Kevin
Hallo nochmals,

Habe das Problem mittlerweile gelöst, aber vielen Dank für deine Bemühung mir zu helfen Blush

Code:
For backerl = 0 To anzahlBackerlTypes - 1
       With UserForm2
           For x = 0 To 4
               .Controls(output(x) & backerl + 1).Caption = backerlInformation(backerl, x)
               If backerlInformation(backerl, x) = "-" Then
                   .Controls(output(x) & backerl + 1).ForeColor = vbRed
               End If
           Next x
       End With
   Next backerl
Über Controls kann man so wie ich es wollte auf die ForeColor zugreifen.
Vielen Dank
Gruß Kevin
Du hast mir ein paar Variablen zuviel im Code, als dass ich dies ohne Datei nachstellen kann/will.
Folgendes klappt in meinem Test einwandfrei (für Label1 in Userform1):
Code:
UserForm1.Controls("Label" & 1).ForeColor = vbRed

Gruß Ralf