Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
428to432
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
428to432
428to432
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Funktion die Füllfarbe definiert

Funktion die Füllfarbe definiert
21.05.2004 00:12:55
martin
Hallo nochmal liebe Leute.
Ich würde gerne eine Funktion bauen, die von der Füllfarbe (Hintergrundfarbe einer Zelle) abhängt.
Beispiel:
A1 ist eine leere Zelle, aber mit schwarzem hintergrund.
In B1 steht: "Text"
Die Funktion soll nun bei der Prüfung von A1 den Text "6" ausgeben und die selbe Funktion soll bei der Prüfung von B1 den Zellinhalt "Text" anzeigen.
Ich habe in der Excelhilfe nach "farbe", "funktion farbe", "funktion füllfarbe" gesucht, habe aber nichts gefunden. Es sind doch alle Funktionen in der Hilfe angegeben - oder? In dem Fall weiss ich einfach noch nicht wie ich die Funktionen die ich suche finden soll.
Grüße, Martin

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion die Füllfarbe definiert
21.05.2004 00:42:22
Matthias G
Hallo Martin,
etwa so?

Function Martin(z As Range)
If z.Interior.ColorIndex = xlColorIndexNone Then
Martin = z.Value
Else
Martin = z.Interior.ColorIndex
End If
End Function

Die Schwarz hat aber den Index 1, nicht 6.
Wenn sich die Hintergrundfarbe ändert, musst Du manuell neu berechnen (Strg-Alt-F9), da Excel dies nicht als Grund für eine Neuberechnung ansieht.
Gruß Matthias
AW: Funktion die Füllfarbe definiert
21.05.2004 01:18:23
Jörg Gradert
Hallo Matthias,
ich,immer noch VBA-Anfänger, habe so etwas ähnliches gebastelt

Function Gaga(Zelle As Range)
If Zelle.Interior.ColorIndex = 1 Then
Gaga = 6
Else
Gaga = Zelle.Value
End If
End Function

läuft jetzt auch, nachdem ich mit deinem Code verglichen habe.
Zuerst hatte ich meine Function, statt Gaga, Auswerten genannt, da bekomme ich eine Messagebox "Diese Funktion ist ungültig." Hat gedauert, bis ich auf den Namen, als Ursache, gekommen bin.
Weisst Du warum Auswerten als Name nicht geht? Wofür ist es reserviert? Habe Auswerten in der Hilfe nicht gefunden.
Gruss Jörg
Anzeige
@Jörg - Auswerten
21.05.2004 01:40:39
Björn B.
Hallo Matthias,
am Namen lag es jedenfalls nicht. Versuch doch mal folgenden Code in einem leeren Modul einer neuen Datei:

Function Auswerten(Zelle As Range)
If Zelle.Interior.ColorIndex = 1 Then
Auswerten = 6
Else
Auswerten = Zelle.Value
End If
End Function


Sub ts()
a = Auswerten(Range("A1"))
Msgbox a
End Sub

Starte dann die Prozedur ts.
Na funzt's?
Gruß
Björn
Naja
21.05.2004 02:34:41
Jörg Gradert
Hallo Björn,
Sinn einer Funktion ist ja, sie im Tabellenblatt eben als Tabellenblattfunktion anwenden zu können, oder sie über den Funktionsasistenten einzufügen.
Also =Auswerten(A1) in die Zelle zu schreiben, was nicht geht, da Auswerten offensichtlich reserviert ist, ich kenne die Funktion Auswerten nur nicht und sie wird bei mir auch nicht angezeigt, werde demnächst mal sämtliche Add-Ins nachinstallieren, um sie zu finden.
Der Sinn kann nicht sein eine Funktion aus einer anderen Prozedur heraus aufzurufen, sonst kann ich ja gleich das Programm für die Auswertung in die Prozedur reinschreiben.
Damit habe ich aber dann keine Tabellenblattfunktion, die ich in Formeln verwenden könnte.
Ich nehme es erst mal so hin, das "Auswerten", als eigen definierter Funktionsname nicht geht, werd die Funktion schon noch kennenlernen.
Gruss Jörg
Anzeige
Habs gefunden
21.05.2004 02:56:03
Jörg Gradert
Hallo an Alle,
offensichtlich ist AUSWERTEN eine Funktion auf Makro Tabellenblättern (Strg + F11 fügt so ein Blatt ein), da erscheint sie dann auch im Funktionsassistenten. Hab die Erklärung hier gefunden:
https://www.herber.de/forum/archiv/332to336/t332377.htm
Gruß Jörg
AW: Naja
21.05.2004 23:25:18
Björn B.
Hallo Jörg,
rümpfe nicht die Nase über Leute, die versuchen Dir zu helfen.
Gruß
Björn
P.S.: Klar kann man eine Funktion so nutzen, wie Du es beschrieben hast, es gibt aber durchaus auch sinnvolle Anwendungen für eine Funktion auf Modulebene.
Anzeige
So habe ich es nicht gemeint
22.05.2004 02:12:59
Jörg Gradert
Hallo Björn,
ich versuche in meinen Threads stets sachlich zu bleiben und jeden mit Respekt zu behandeln.
Dass, wahrscheinlich, das Wort naja im Betreff, bei dir ein Bild von Naserümpfen meinerseits hervorgerufen hat, lag nicht in meiner Absicht. Ich habe selbst gefühlstechnisch eine sehr dicke Haut, darum drücke ich mich wohl nicht immer feinfühlig genug aus.
Bestimmt hast Du Recht mit deiner Aussage, dass es sinnvolle Anwendungen für Funktionen auf Modulebene gibt, ich bin immer noch VBA-Anfänger und wusste es halt nicht besser.
Dein Beispiel funktioniert auf Modulebene super, danke für den Hinweis.
Auf dem Tabellenblatt ist die Funktion AUSWERTEN() für Makrotabellenblätter schon vergeben, was zu dem von mir beschriebenen Fehler führte.
Liebe Grüsse
Jörg Gradert


Anzeige
@Jörg - akzeptiert und vergessen - o. T.
22.05.2004 21:25:51
Björn B.
AW: Funktion die Füllfarbe definiert
23.05.2004 10:39:23
Martin
Hallo Matthias.
Ja, genau so! Super. Echt geil. DANKE.
Vielen Dank auch an Euch andere für Eure Vorschläge.
Grüße, Martin
AW: Funktion die Füllfarbe definiert
21.05.2004 00:43:03
Oberschlumpf
Hi Martin
Warum versuchst Du es nicht so:
If Range("A1").Interior.ColorIndex = 1 Then
Range("A1").Value = "6"
End If

If Range("B1").Interior.ColorIndex = 1 Then
MsgBox Range("B1").Value
End If
Sicher habe ich Dich noch nicht richtig verstanden, weiss nämlich aufgrund Deiner Beschreibung noch nicht ganz, was Du erreichen möchtest.
Daher mein Bsp nur als Überlegung.
Ciao
Thorsten
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige