Farbe einer Zelle auslesen

Antworten
heiko12345
Beiträge: 6
Registriert: 13.11.2022 13:44:49

Farbe einer Zelle auslesen

Beitrag von heiko12345 »

Ich versuche gerade eins meiner Excel VBA-Skripte für Basicmaker zu konvertieren und finde nichts zu folgendem Problem:

Code: Alles auswählen

If wks.Cells(a, 12).Interior.ColorIndex = far1 Then
Wie kann man in BasicMaker die Farbe einer Zelle auslesen und weiterverarbeiten?
Benutzeravatar
Get
Beiträge: 231
Registriert: 08.12.2014 13:39:39
Kontaktdaten:

Re: Farbe einer Zelle auslesen

Beitrag von Get »

Code: Alles auswählen

Sub farbeAuslesen

	Dim pm As Object
	Set pm = CreateObject("PlanMaker.Application")
	pm.Application.Visible = True
	Dim row, col As Integer
	Dim Hintergrundfarbe, Schriftfarbe As Long
	
	row = 1
	col = 1

	Hintergrundfarbe = pm.activeSheet.Cells.Item(row, col).Font.BColor
	Schriftfarbe = pm.activeSheet.Cells.Item(row, col).Font.Color
		
	Set pm = Nothing

End Sub
Die Farbwerte werden als BGR-Werte zurückgegebn
Gerhard Etzel
Autor (gerhard-etzel-buch.de). Meine Bücher wurden alle mit Textmaker geschrieben!
Windows 10, SMO NX Universal 64 Bit Prof.
Intel(R) Core(TM) i5, 16 GB Ram
heiko12345
Beiträge: 6
Registriert: 13.11.2022 13:44:49

Re: Farbe einer Zelle auslesen

Beitrag von heiko12345 »

Vielen Dank für die Hilfe. Funktioniert als solches soweit. Erstaunlich auch die hohe Kompatibilität. Der Code musste nur an ein paar Zeilen geändert werden. Finde ich prima. Die Farben aus Excel lassen sich allerdings nur mit dem Wert -1 auslesen. Grün, Blau und Gelb hatte ich verwendet und im Basicmaker sind die Farben 65280 (pmColorGreen), 65535 (pmColorYellow), 16711680 (pmColorBlue). Wie gesagt, die in Excel erstellte Originaltabelle in Planmaker geladen, gibt für alle farbigen Zellen immer nur -1 aus. Da muss ich mir mal was einfallen lassen.
Benutzeravatar
Get
Beiträge: 231
Registriert: 08.12.2014 13:39:39
Kontaktdaten:

Re: Farbe einer Zelle auslesen

Beitrag von Get »

Hallo Heiko,
ich habe keine Ahnung, wie Excel die Farben definiert. Vielleicht nur als Indexfarben? Bei BM gibt es diese Option auch: Einfach statt "Color" die Variable "ColorIndex" verwenden (auch bei BColor) Wie in BM die Indexfarben (0-15) definiert sind, kannst du im der Hilfe von BM nachschlagen. Mein Vorschlag: ausprobieren.
Gruß
Gerhard
Gerhard Etzel
Autor (gerhard-etzel-buch.de). Meine Bücher wurden alle mit Textmaker geschrieben!
Windows 10, SMO NX Universal 64 Bit Prof.
Intel(R) Core(TM) i5, 16 GB Ram
heiko12345
Beiträge: 6
Registriert: 13.11.2022 13:44:49

Re: Farbe einer Zelle auslesen

Beitrag von heiko12345 »

Ja, es funktioniert tatsächlich mit den Standardfarbwerten von Excel. (Farbübereinstimmung muss ich noch genauer mal prüfen)

Code: Alles auswählen

wks.Cells(118, 17).Font.ColorIndex=5 
z.B ergibt rot. Ich meine in Excel ist das auch die Zahl 5.

Ein Problem ist das noch. Es wird die Schriftfarbe analysiert. Ich brauche aber die Farbe der Zelle. Weißt Du zufällig, wie man das schreibt?
wks.Cells(118, 17).xxx.ColorIndex
heiko12345
Beiträge: 6
Registriert: 13.11.2022 13:44:49

Re: Farbe einer Zelle auslesen

Beitrag von heiko12345 »

Ich glaube, ich habe es im Handbuch gefunden:

Code: Alles auswählen

wks.Cells(118, 17).Shading.ForegroundPatternColorIndex = smoColorIndexBlue
Das färbt die Zelle gemäß kompatiblen Zahlenwerten. Das Auslesen der von Excel nach Planmaker überführten Tabelle dürfte somit auch kein Problem mehr darstellen. Handbuchverweis: 146,279
Antworten

Zurück zu „BasicMaker 2021 für Windows“