Registriert seit: 24.07.2017
Version(en): 2007
24.07.2017, 11:13
(Dieser Beitrag wurde zuletzt bearbeitet: 24.07.2017, 11:17 von Kevin.)
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
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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)
Registriert seit: 24.07.2017
Version(en): 2007
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
Registriert seit: 24.07.2017
Version(en): 2007
24.07.2017, 11:44
(Dieser Beitrag wurde zuletzt bearbeitet: 24.07.2017, 11:44 von Kevin.)
Hallo nochmals,
Habe das Problem mittlerweile gelöst, aber vielen Dank für deine Bemühung mir zu helfen
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
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• Kevin