Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Textfeld bedingt formatieren?





Frage

Hallo Leute, mein Problem sieht wie folgt aus: Ich möchte ein Textfeld mit einer Zelle verknüpfen und den Text, wenn der Zellwert größer als Null ist grün, kleiner als Null rot darstellen. Die Verknüpfung hab ich noch hinbekommen - aber die bedingte Formatierung ist ein Problem! Vielen Dank für den Support, liebe Grüße aus Österreich yours Goalie

Antwort 1 von coros

Hi Portiere,

um was für ein Textfelde handelt es sich? Was ich meine, stammt das Textfeld von der Symbolleiste Zeichnen, oder von der Symbolleiste Steuerlement-Toolbox.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von EIZO

Hi wenn ich das richtig verstanden habe möchtest du wenn der wert der TextBox kleiner ist als 0 das der Wert in der TextBox rot angezeigt wird und wenn größer 0 grün dargestellt wird.
Kopiere den code in dein Von deim UserForm oder Tabellenblatt je nach dem wo sich das textfeld befindet.


Private Sub TextBox1_Change()
If UserForm1.TextBox1.Text < "0" Then
UserForm1.TextBox1.ForeColor = RGB(255, 0, 0)
Else
UserForm1.TextBox1.ForeColor = RGB(0, 255, 0)
End If
End Sub


hoffe ich konnte dir weiterhelfen

Antwort 3 von Portiere

Hi,

also eigentlich verwende ich das Textfeld (Zeichnen) und keine Textbox, da mein VBA eher sehr mager ist!
Gibt es da etwas für das Textfeld, oder muss ich mit mit der Box abquälen?

Danke für eure Hilfe,

lg yours Goalie

Antwort 4 von coros

Hi,

deshalb habe ich gefragt. Es ist zwar beides nur über VBA realisierbar, aber beim Ansprechen der Textfelder gibt es unterschiede. Kopiere nachfolgenden VBA Code in das VBA Projekt des Tabellenblattes, in dem sich das Textfeld befindet.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1") <= 0 Then
Shapes("Textfeld").TextFrame.Characters.Font.ColorIndex = 3
Else
Shapes("Textfeld").TextFrame.Characters.Font.ColorIndex = 10
End If
End Sub


Bei dem Code wird, wenn in Zelle A1 der Wert kleiner oder gleich 0 ist rot, ansonsten wird er grün. Da es sich bei Dir sicherlich um eine andere Zelle als A1 handeln wird, ändere in dem Code in der Zeile

If Range("A1") <= 0 Then

Die Zellbezeichnung A1 gegen die Bezeichnung der Zelle, auf die das Textfeld reagieren soll. Auch musst Du Deinem Textfeld den Namen "Textfeld" geben. Dazu klicke das Textfeld einmal an, also markieren, und ändere oben Links in der Leiste, dort wo sonst die Zellbezeichnung der gerade aktiven Zelle angezeigt wird, den Namen. Alternativ kannst Du auch den Namen Deines Textfeldes belassen, allerdings musst Du dann in dem Code in den Zeilen

Shapes("Textfeld").TextFrame.Characters.Font.ColorIndex = 3

und

Shapes("Textfeld").TextFrame.Characters.Font.ColorIndex = 10

den Text "Textfeld" der zwischen den Anführungsstrichen steht (Achtung!! Die Anführungsstriche müssen stehen bleiben) gegen den Namen Deines Textfeldes tauschen. In den gleichen Zeilen wird auch die Farbindexzahl (ist die Zahl ganz am Ende) angegeben. Welche Zahl welcher Farbe entspricht, kannst Du durch ein AddInn, dass Du auf meiner HP in der Rubrik Beispieldateien und dort dann in dem Beispiel 43 findest, entnehmen. In der Rubrik Anleitungen und dort dann in dem Beispiel 2 findest Du auch eine Anleitung, wie Du den Code in Deine Datei bekommst.

Ich hoffe, Du kommst zurecht. Bei Fragen melde Dich.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 5 von Portiere

Hallo!

Einfach die perfekte Lösung! Viele vielen Dank!

Lg
Goalie

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: