Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

UserForm Schriftfarbe ändern
#1
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
Antworten Top
#2
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
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
Antworten Top
#4
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
Antworten Top
#5
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Kevin
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste