Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
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
Inhaltsverzeichnis

Formatierung einer Zelle mittels Funktion

Formatierung einer Zelle mittels Funktion
29.09.2015 20:18:57
Chris
Hallo,
ich habe folgende Funktion geschrieben, welche auch gut funktioniert:
Function Note(Punkte As Integer) As String
Select Case Punkte
Case Is >= 90
Note = "sehr gut"
Case 75 To 89
Note = "gut"
Case 60 To 74
Note = "befriedigend"
Case 45 To 59
Note = "ausreichend"
Case 30 To 44
Note = "mangelhaft"
Case Else
Note = "ungenügend"
End Select
End Function
Wie kann ich nun die jeweilige Zelle, in der die Funktion aufgerufen wird, innerhalb der Funktion formatieren ("sehr gut" grün hinterlegt, ..., "ungenügend" rot hinterlegt; keine bedingte Formatierung)?
https://www.herber.de/bbs/user/100487.jpg
Vielen Dank für die Antworten!

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

Betreff
Datum
Anwender
Anzeige
AW: Formatierung einer Zelle mittels Funktion
29.09.2015 20:42:15
Daniel
Hi
es ist in Excel nicht vorgesehen, das Formeln in Zellen mehr beeinflussen können, als den Zellwert.
daher dürfen auch VBA-Funktionen nur dies tun, wenn sie in Excelzellen in Formeln verwendet werden.
(es wird zwar berichtet, dass es möglich ist, diese Einschränkung ausser Kraft zu setzen, aber das ist dann eher für Experten)
Excel hat für deine Aufgabenstellung die bedingte Formatierung vorgehehen, in den neueren Excelversionen ab 2007 können dann auch mehr als 3 unterschiedliche bedingte Formate pro Zelle verwendet werden, du kannst auch unterschiedliche Bediungen für unterschiedliche Formatierungen miteinander kombinieren (Farbe nach Note, Rahmen nach Fachgruppe)
wenn du trotzdem die Bedingte Formatierung nicht verwenden willst, müsstest du ein normales Makro schreiben, welches die Formatierung nach Wert vornimmt.
Gruß Daniel

Anzeige
AW: Formatierung einer Zelle mittels Funktion
30.09.2015 12:40:59
Chris
Hi Daniel,
vielen Dank für Deine ausführliche Antwort!
Dann werde ich wohl doch die bedingte Formatierung beibehalten müssen. Nichtsdestotrotz interessiert mich sehr, wie denn die Einschränkung ausser Kraft gesetzt werden kann. Hast Du dazu Informationen?
Danke & Gruß,
Chris

ZellFormatierung durch 1 UDF ist möglich, ...
30.09.2015 23:57:21
Luc:-?
…Chris,
wenn man entweder API-Fktt in sie einbaut oder die UDF als Auslöser einer von ihr physisch entkoppelten Ereignis­Prozedur benutzt. D.h., die Formatierung wird in eine Ereignis- oder von einer solchen aufgerufene Prozedur ausgelagert. Die eigentliche UDF ruft diese Prozedur nicht auf, sondern macht etwas, das genau dieses Ereignis auslöst. Dabei kann das gewünschte Format der UDF als Argument mitgegeben wdn. Diese trägt es in eine Global­Variable ein (ggf mit eigenem Standort), auf die dann die Ereignisprozedur zugreift und so die Zelle(n) wie gewünscht formatieren kann.
So etwas sollte man nicht inflationär verwenden, schon gar nicht, wenn man das Problem auch mit einer Bedingt­Formatierung lösen kann. Es hat nämlich einen Grund, dass das Fktt in ZellFmln nicht erlaubt ist.
Übrigens lassen sich ab Xl12/2007 bzw xl14/2010 einige Dinge (idR neue Features) auch ohne diesen Umweg direkt mit einer UDF realisieren, während zuvor nur 'ne MsgBox ausgegeben wdn konnte (aber keine gute Idee!) und noch etwas in bezug auf Zeichnungs­Objekte, aber nur objekt­abhängig wenig (nie alles!) ging. Möglicherweise hat(te) MS da geschlampt.
Fazit: So etwas sollte stets einigen wenigen Spezialfällen vorbehalten bleiben!
Gruß, Luc :-?
Besser informiert mit …
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige