Topic
Font colour in cell table
Startseite ' Community ' Automation and VBA ' Font colour in cell table
- Dieses Thema hat 21 Antworten sowie 2 Teilnehmer und wurde zuletzt vor vor 11 Jahren, 7 Monaten von HerveM1234 aktualisiert.
-
AutorBeiträge
-
25.10.2013 um 11:23 Uhr #35146HerveM1234Teilnehmer
Hi,
Thanks for your reply.
The font setting works very wellThe problem I have is the value : myCell.Text gives something like :%{myfpscript_expression}
How in VBA can I compare this “value” to an integer or an string for example ?Thanks again
25.10.2013 um 11:23 Uhr #35145HerveM1234TeilnehmerHi,
Thanks for your reply.
The font setting works very wellThe problem I have is the value : myCell.Text gives something like :%{myfpscript_expression}
How in VBA can I compare this “value” to an integer or an string for example ?Thanks again
25.10.2013 um 11:23 Uhr #35144HerveM1234TeilnehmerHi,
Thanks for your reply.
The font setting works very wellThe problem I have is the value : myCell.Text gives something like :%{myfpscript_expression}
How in VBA can I compare this “value” to an integer or an string for example ?Thanks again
28.10.2013 um 13:08 Uhr #35157Bernhard KantzTeilnehmerYou should loop through your table and convert the string extracted from each cell to a value.
You can use for example[code]Dim myValue As Double
myValue = Val(myString)‘ or
Dim myInt As Integer
myInt = CInt(myString)[/code]to do this. Then you’re able to check, if the value is within your limits:
[code]Dim myLimit As Double
myLimit = 100If myValue > myLimit Then
MsgBox (“red”)
Else
MsgBox (“green”)
End If[/code]05.11.2013 um 12:15 Uhr #35158Bernhard KantzTeilnehmerTo evaluate the string expression contained in the .Text property of the CellTableCell object one may use the FPScript function Execute(). In the following macro this formula is generated on the fly and deleted after execution.
[code]
Option ExplicitPublic Sub ColorizeCells()
Dim myTable As CellTable
Set myTable = ActiveDatabase.ActiveFolder.Object(“Zellentabelle”, _
fpObjectTypeCellTable)Dim oEvaluator As Formula
Set oEvaluator = ActiveDatabase.ActiveFolder.Add(“Eval”, fpObjectTypeFormula, _
fpNameClashHandlingAutoRename)
oEvaluator.Formula = “Arguments str” & vbCrLf & “Execute(str)”Dim nRows As Integer, nCols As Integer
nRows = myTable.Cells.NumberOfRows
nCols = myTable.Cells.NumberOfColumnsDim i As Integer
Dim res As Double
For i = 1 To 3
‘ cells are numbered row-wise so 2 + i * nCols enumerates the cells
‘ from the second column starting at the second row
With myTable.Cells(2 + i * nCols).Text
res = oEvaluator.Call(ExtractExpression(.Text))
If res < -1 Then
.Font.Color = vbBlue
ElseIf res <= 1 Then
.Font.Color = vbBlack
Else
.Font.Color = vbRed
End If
End With
Next ioEvaluator.Delete
End SubPrivate Function ExtractExpression(str As String)
str = Mid$(str, InStr(str, "{") + 1)
ExtractExpression = Left$(str, InStrRev(str, "}") – 1)
End Function
[/code]This macro assumes a cell table named "Zellentabelle" with atleast two columns and four rows. It scans the 3 cells in the second column starting from the second row and changes the font color to blue for values less than -1, red for values greater than +1, values between this limits are colored black.
12.11.2013 um 14:45 Uhr #35159HerveM1234TeilnehmerHi,
Thanks again for that, but :
– the Execute FPS function doesn’t work with data series !
– 100 lines of code just to change the cell colours !I will try to export the tables to an Excel File and work with the built-in functions of Excel to modify the cells colours.
Please could you :
– Post a VBA example of FlexPro Table exportation to Excel Worsheet
– Upgrade the current version of FlexPro with this functionnalityrv
Attached : an example of Execute function
13.11.2013 um 08:59 Uhr #35160Bernhard KantzTeilnehmerThe automatic coloring of table cells depending on their value is indeed planned for FlexPro 10.
To transfer a FlexPro table to Excel, copy and paste via the ordinary clipboard mechanism can be used: Select the whole table (using Ctrl-A) and use Ctrl-C followed by Ctrl-V in the destination Excel table to insert the content. -
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.