AW: Eben, genau das WAR auch meine Meinung, ...
08.08.2014 23:44:42
Ewald
Hallo,
in diesem einfachen Fall reicht die Function von Daniel vollkommen aus.
Kommt jedoch noch ein besonderes Zellenformat hinzu,reicht Zellentext nicht mehr aus.
Als Beispiel
ist die Zahl in F17
die Zelle selber hat das Format "+"Standard, es wird ein Plus vor der Zahl angezeigt
| | F | G | H | I | J | | 16 | | F17/F18 10 bed.For. "Lattenzaun" | | | | | 17 | 2 | # | | # | # | | 18 | 12 | +12 | | + | +12 | | 19 | | F17/F18>10 Zellfor. + vor Zahl | | | |
|
| Zelle | Format | Wert | | G17 | "+"General | 2 | | G18 | "+"General | 12 |
| | Zelle | Formel | | G17 | =F17 | | I17 | =Zusatzformat(G17) | | J17 | =FormatierterWert(G17) | | G18 | =F18 | | I18 | =Zusatzformat(G18) | | J18 | =FormatierterWert(G18) |
| | Zelle | bedingte Formatierung... | Format | | G17 | 1: =$F$1710 | abc |
|
bei Zeilentext würde jetzt die Bedfor richtig angezeigt,bei normaler Formatierung aber alles.
Es muß also einmal der Zeilentext und das Numberformat ausgelesen werden.Um zu unterscheiden welches Format gerade aktiv ist, wird der Bedfor noch ein Leerzeichen mitgegeben " #"(kann auch ein anderes sein). Dies kann nun ausgewertet werden.
Die Funktion dazu
Function Zusatzformat(Bezug As Range) As String
Dim str As Variant
str = Bezug.Text
If Mid(Bezug.Text, 1, 1) = " " Then
Zusatzformat = Mid(Bezug.Text, 2, 1)
Else
str = Split(Bezug.NumberFormat, """")
Zusatzformat = str(1)
End If
End Function
Gruß Ewald