3.2k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo an alle,

ich hätte eine Frage bezüglich der Verknüpfung eines Textfeldes mit einer Zelle in Excel.

Ich habe eine Grafik gebaut in der auch Textfelder integriert sind. Diese habe ich mit den Zellen verknüpft, dessen Werte in den Textfeldern erscheinen sollen. Das funktioniert auch super. Jedoch hätte ich gerne, dass die Formatierung der Werte in den Excel Zellen in das Textfeld übernommen werden. Sprich, wenn es negative Zahlen sind, dass diese rot im Textfeld erscheinen und wenn sie positiv sind, schwarz. Diese Formatierung ist in den betroffenen Zellen in Excel hinterlegt, wird aber nicht in die Textfelder übernommen.

Ich würde mich riesig freuen, wenn mir jemand weiterhelfen könnte.

Vielen Dank schon einmal.

Kristina

3 Antworten

0 Punkte
Beantwortet von
Hallo Kristina,

da du schreibst, du hast die Textfelder mit den Zellen verknüpft gehe ich mal von ActiveX-Textfeldern aus die du über die LinkedCell-Eigenschaft verknüpft hast.

Leider bieten diese Textfelder keine Numberformat-Eigenschaft. Du kannst die Textfarbe aber leicht ändern wenn du im VBA in dein Sheet-Modul in dem sich die Textfelder befinden (z.B. Tabelle1) folgenden Code einfügst:

Private Sub TextBox1_Change()
If TextBox1.Value < 0 Then TextBox1.ForeColor = 255 Else TextBox1.ForeColor = 0
End Sub

Den Namen Textbox1 musst du natürlich an deinen Namen anpassen.

Gruß Mr. K.
0 Punkte
Beantwortet von
Hallo ExcelKing,

vielen Dank für die schnelle Antwort.

ich habe ein normales Textfeld gewählt (Reiter Einfügen, Rubrik Text --> Textfeld) und dieses verknüpft.
Ich habe gelesen, dass es möglich ist, dass das Textfeld die Formatierung des 1. Zeichens der verbundenen Excel Zelle übernehmen kann. Ist das richtig?
Sollte ich ein anderes Textfeld als das von mir gewählte nehmen?

Vielen Dank und liebe Grüße
0 Punkte
Beantwortet von
Hallo Kristina,

Sorry, habe deine Antwort gerade erst gelesen.
Bei einem normalen Textfeld musst du dich etwas durch die Eigenschaften durchhangeln.

z.B. ActiveSheet.Shapes("Textbox 1").TextFrame.Characters.Font.Color = 255

Diese Zeile legst du dort an, wo du auch das Textfeld mit Inhalt befüllst. Das ist bei dir wahrscheinlich das Change-Ereignis des Tabellenblatts. Denn mir ist nicht bekannt, dass man ein normales Textfeld mit einer Zelle verknüpfen kann.
Prüfe in diesem Fall ob der Zellinhalt kleiner 0 ist. (If Target.value < 0)

Du kannst auch nur einzelne Zeichen einfärben. Für die Zeichen 1 bis 4 wäre das z.B. Characters(1,4).font.color = 255

Sollte das nicht der richtige Weg sein. schreib doch mal wie du das Textfeld mit den Zellen verknüpft hast.

PS: Leider kann ich dir am Wochenende nicht antworten, da ich erst nächste Woche meinen eigenen Internetanschluss bekomme.

Gruß Mr. K.
...