Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
136to140
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
136to140
136to140
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Labels (bedingt) formatieren?

Labels (bedingt) formatieren?
22.07.2002 19:04:30
Gerhard S.
Hallo,
mein Problem ist folgendes, in meiner Userform werden in 4 Textboxen Werte (Punkte) eingegeben, die zum Tabellenblatt in 4 zellen kommen. Von dort wird berechnet, wie hoch der Betrag ist und kommt dann wieder zurück in 4 Labels der Userform. Nun möchte ich gerne, das mir die Labels schon "von weitem" anzeigen ob dieser Betrag positiv oder negativ, also unter 0,00€ liegt.

In der Recherche hab ich sowas ähnliches aufgestöbert, komm aber als Nichtprofi nicht damit zurecht. In dem Code wird der Hintergrund verändert, mir würde es aber schon langen, wenn nur die Schrift Rot+Fett wird bei negativen Beträgen.
Hier der Code:
For i = 0 To Me.Controls.Count - 4 '???
If Left(Me.Controls(i).Name, 5) = "Label" Then Me.Controls(i).BackColor = &H8000000D
Next
End Sub

Vielen Dank im vorraus

mfg

Gerhard S.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Labels (bedingt) formatieren?
22.07.2002 20:06:53
L.Vira
Wozu die Schleife? Werden alle 4 Werte gleichzeitig negativ?
Bei welchem Ereignis sollen die Label z.B. rot werden?
Re: Labels (bedingt) formatieren?
22.07.2002 20:47:15
Nepumuk
Hallo Gerhard

mein Vorschlag

Dim index
For index = 1 To 4
If Left(CStr(UserForm1.Controls("Label" & CStr(index))), 1) = "-" Then
UserForm1.Controls("Label" & CStr(index)).ForeColor = RGB(255, 0, 0)
Else
UserForm1.Controls("Label" & CStr(index)).ForeColor = RGB(0, 0, 0)
End If
Next

Gruß
Nepumuk

Re: Labels (bedingt) formatieren?
23.07.2002 08:36:45
Nepumuk
Morgen Gerhard

Ich habe mir deine Aufgabe nochmals angesehen. Du wolltest die Schrift ja auch noch fett. Das geht dann so:

Dim index
For index = 1 To 4
With UserForm1.Controls("Label" & CStr(index))
If Left(CStr(.Caption)), 1) = "-" Then
.ForeColor = RGB(255, 0, 0)
.Font.Bold = True
Else
.ForeColor = RGB(0, 0, 0)
.Font.Bold = False
End If
End With
Next

Anzeige
Danke....aber
23.07.2002 17:17:43
Gerhard S.
damit komme ich leider nicht klar. Wo muss ich diesen Code denn einfügen? Ergänzen? Ändern? Meine Userform heisst UFRechnen2, die Labels sind Label15, 16, 17, 18. Kannst Du mir das detaillierter erklären?

mfg

Gerhard S.

Details
23.07.2002 18:19:39
Gerhard S.
Hallo L.Vira,
es werden mindestens ein maximal drei Werte negativ angezeigt. Wenn der Betrag unter 0,00 liegt, dann soll das Label anders aussehen. Ich bitte aber um einen detaillierten Code, meine Userform heisst UFRechnen2, meine Labels sind Label15, 16, 17 und 18.

mfg

Gerhard S.

Re: Danke....aber
23.07.2002 18:37:24
Nepumuk
Hallo Gerhard,
in deinem Code zur Ausgabe deiner Rechenoperation erfolgt die Wertzuweisung an deine Labels mit dem Befehl „Label15.Caption = hier kommt entweder eine Variable oder ein Direkter Zellbezug“. Nach dieser Zeile fügst du den Aufruf „Call Label_formatieren“ ein. Am Ende deiner Codesequenz kopierst du folgenden Code ein:

Den Call-Aufruf zum formatieren musst du natürlich bei den Caption-Zuweisungen der Label 16, 17 und 18 auch einfügen, dann müsste es funktionieren.

Gruß
Nepumuk

Anzeige
Problem
23.07.2002 18:52:44
Gerhard S.
Hallo Nepumuk, ich komme leider nicht weiter. In meinem Code kommt kein Caption oder Call vor. stattdessen bekomme ich bei deinem Code eine Fehlermeldung, "Erwarte Then oder GoTo" ???
In der Zeile, die Rot erscheint.

'Hier der Code der Userform

Private Sub CommandButton1_Click()
[MP!D4].Value = TextBox1.Value '<<[MP!E4].Value = TextBox2.Value
[MP!F4].Value = TextBox3.Value
[MP!G4].Value = TextBox4.Value


Label15 = Sheets("MP").Range("D5") '<<Label16 = Sheets("MP").Range("E5")
Label17 = Sheets("MP").Range("F5")
Label18 = Sheets("MP").Range("G5")

Private Sub Label_formatieren() ' der Code von Dir
Dim index
For index = 15 To 18
With UFRechnen2.Controls("Label" & CStr(index))
If Left(CStr(.Caption)), 1) = "-" Then '<<< Hier ist die Zeile Rot + Fehlermeldung
.ForeColor = RGB(255, 0, 0)
.Font.Bold = True
Else
.ForeColor = RGB(0, 0, 0)
.Font.Bold = False
End If
End With
Next index
End Sub

Ich glaube wir arbeiten an verschiedenen Userformen?

mfg

Gerhard S.

Anzeige
Re: Problem
23.07.2002 21:28:34
Nepumuk
Hallo Gerhard
nach den Befehl:

Label18 = Sheets("MP").Range("G5")

einfach diese Zeilen einfügen:

Dim index
For index = 15 To 18
With UFRechnen2.Controls("Label" & CStr(index))
If Left(CStr(.Caption)), 1) = "-" Then
.ForeColor = RGB(255, 0, 0)
.Font.Bold = True
Else
.ForeColor = RGB(0, 0, 0)
.Font.Bold = False
End If
End With
Next index

einfacher gehts nicht mehr.

Gruß
Nepumuk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige