Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1444to1448
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
Text in Zeichnungselementen formatieren
14.09.2015 20:53:20
Lutz
Grüßt Euch,
ich habe eine Anwendung, die eigentlich nur extremst grenzwertig zu Excel gehört. In dieser gibt es verschiedene Formen (Form1), die je nach Aktivität unterschiedliche Farben annehmen (von weiß bis dunkelblau). Darauf befinden sich als zusätzliche Formen (Form2)solche, die einen Text beinhalten und die Form1 näher beschreiben. Je nach Farbe der Form1 ist der Text Text nun zu hell oder zu dunkel. Ich möchte daher per VBA die Textfarbe ändern (in schwarz oder weiß). Wichtig ist mir dabei, dass ich möglichst die Form2 an sich nicht selcten möchte, das sorgt m. E. für eine Verlangsamung des Prozesses.
Wie ich allerdings ohne ein Select in einer VBA Zeile die Farbe ändere, ist mir verschlossen geblieben. Kann mir einer von Euch helfen?
Grüße
Lutz.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text in Zeichnungselementen formatieren
14.09.2015 20:56:09
Sepp
Hallo Lutz,
sprichst du jetzt von Formen, oder von Zellen?
Gruß Sepp

AW: Text in Zeichnungselementen formatieren
14.09.2015 21:13:55
Lutz
Hallo Sepp,
ich spreche von Formen, früher hießen die - glaube ich - Zeichnungselemente.
Grüße.

AW: Text in Zeichnungselementen formatieren
14.09.2015 22:20:07
Sepp
Hallo Lutz,
zwei Beispiele. Die Namen der Tabelle und der Formen musst du natürlich anpassen!
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub SchwarzWeiss()

Sheets("Tabelle2").Shapes("Form2").TextFrame2.TextRange.Font.Fill.ForeColor.RGB = vbWhite 'vbBlack

End Sub


Sub Kontrast()
Dim objShp1 As Shape, objShp2 As Shape

Set objShp1 = Sheets("Tabelle2").Shapes("Form1")
Set objShp2 = Sheets("Tabelle2").Shapes("Form2")


objShp2.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = contrastLong(objShp1.Fill.ForeColor)

End Sub


Private Function contrastLong(ByVal Color As Long, Optional ByVal weighted As Boolean = False) As Long
Dim brightnes As Integer, red As Integer, green As Integer, blue As Integer

red = Color And 255
green = (Color \ 256) And 255
blue = Color \ 65536

If weighted Then
  brightnes = 0.3 * red + 0.59 * green + 0.11 * blue
Else
  brightnes = (red + green + blue) / 3
End If

If brightnes > 127 Then
  contrastLong = vbBlack
Else
  contrastLong = vbWhite
End If
End Function


Gruß Sepp

Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige