Hallo!
ich habe eine VBA-Funktion die mir Excel-Zellen aus einer
Datenbank befüllt.
Diese sollen z.B. entsprechend des Textes gefärbt werden.
z.B. Zelle A1: =getInfo(„T_TEST“) schreibt mir eine
Beschreibung zur Tabelle „T_TEST“ in die Zelle. Diese soll
z.B. bei Tabellen grün sein, bei Views („V_…“) blau.
Das Problem ist, dass der Rückgabewert der Funktion ja keine
Formatierungsinformationen enthält, sondern nur aus einem
String besteht. Gibts da einen anderen Datentyp?
Nein, brauchst Du auch nicht unbedingt. Da Du ja in einer Excel-Datei rumspielst, kannst Du dort direkt formatieren. Und das am besten mit der bedingten Formatierung, wenn Du Dich auf drei Bedingungen einschränken kannst. Ansonsten musst Du das ganze schon zu Fuß erledigen.
Die entsprechende Zelle direkt formatieren funktioniert auch
nicht, da die Funktion offensichtlich keinen Bezug zur
aufrufenden Zelle hat. ActiveCell funktionert nicht und
Application.Caller auch nicht.
Mit/unter was entwickelst Du denn? Du wirst ja wahrscheinlich Excel in die Verweise eingebunden haben. Dann kannst Du ganz „normal“ mit dem Workbook-, dem Worksheet-, dem Range- und dem Cell-Objekt auf die einzelnen Stellen zugreifen und sie entsprechend formatieren. Z. B., um im obigen Beispiel zu bleiben, so für Zelle A3 (Zeile 3, Spalte 1):
With DeinExcelObjekt.Workbooks("DeineDatei.xls").Worksheets(1).Cells(3, 1)
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:= \_
"=(LINKS($A3;2)=""V\_"")"
.FormatConditions(1).Interior.ColorIndex = 5
.FormatConditions.Add Type:=xlExpression, Formula1:= \_
"=(LINKS($A3;2)=""T\_"")"
.FormatConditions(2).Interior.ColorIndex = 50
End With
Gruß, Manfred