Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Wenn Funktion





Frage

Ich würde gern eine Auswertung einer Tabelle machen. Es soll angezeigt werden, wenn der wert in der Zelle blau ist dann soll eine "0" erscheinen sonst nichts. Kann mir einer helfen!?

Antwort 1 von coros

Hallo bernhard3,

gestatte mir zum Anfang eine kleine Anmerkung. Ein Hallo am Anfang und ein Gruß am Ende würde Deinen Beitrag gleich viel netter aussehen lassen. Wenn Du zum Bäcker gehst sagst Du ja auch beim Reingehen "Guten Tag" und beim Gehen "Auf Wiedersehen". Denn die Leute, an die Du Deine Frage richtest, sitzen zwar am PC, sind aber dennoch Menschen.

Nun zu Deiner nicht gerade aussagekräftigen Frage. Mal als Beispiel, wenn in Zelle B1 der Wert 0 angezeigt werden soll, wenn in Zelle A1 der Text "blau" steht, dann gehört in Zelle B1 die Formel

=WENN(A1="blau";0;"")

Bei Fragen melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von bernhard3

Hallo Oliver,

entschuldigung für die vergessenen Grußformeln!

Ich meinte eigentlich wenn der wert in der Zelle eine blaue Schriftfarbe hat!

Geht das überhaupt?!

MFG
Bernhard

Antwort 3 von coros

Hallo Bernhard,

wann erhält denn der Wert in der Zelle die blaue Schriftfarbe?

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von MixMax

hm... andersrum kenne ich schon - wenn eine Zelle einen bestimmten Wert hat die oder eine andere Zelle eine bestimmte Farbe annehmen zu lassen... findest unter Bedingte formatierung.

Eventuell über die funktion

=Zelle("farbe"; A1)

aber da bleibt mir die Funktionsweise noch verborgen. Vor allem muss man das Blatt neu berechnen lassen damit sich bei =Zelle("breite";A1) wirklich was ändert wenn man die Breite ändert.

Prüfe mal dringend ob du das über bedingte Formatierung lösen kannst und die gleiche Bedingung dann nutzen kannst um festzustellen ob die Zelle blau ist.

Antwort 5 von coros

Hallo MixMax,

daher auch meine Frage, wann die Zelle die Farbe blau annimmt, da eine reine Änderung der Farbe nicht auswertbar ist, da dadurch kein Ereignis ausgelöst wird. Aber der Zustand Blau muss ja durch etwas ausgelöst werden.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 6 von bernhard3

Hallo danke für die schnellen Antworten!

Die Zellen ändern die Schriftfarbe durch bedingte Formatierung.

Antwort 7 von coros

Hallo bernhard3

und wann ändern sie Ihre Farbe (die Bedinnung)? Wir können das Frage-/ Antwortspiel noch bis nächstes Jahr so weiterführen, wenn Du immer nur so wenige Infos preis gibst.

Schreibe doch bitte mal etwas mehr. Durch was wird die bedingte Formatierung ausgelöst? Eventuell ein Beispiel. Du kennst Deine Datei mit all íhren Kriterien. Wir nicht.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 8 von bernhard3

Also es ist eine Statistik bei der ein Verbrauch berechnet wird. alles was unter 32 liegt ist blau, was zwischen 32 und 34 liegt ist grün und alles über 34 ist rot formatiert. Wenn der Wert null ist dann schwarz. Nun soll angezeigt werden wenn der Wert in der Zelle B3 unter 32 liegt, dann "sehr gut", wenn er zwischen 32 und 34 liegt "gut" und wenn er über 34 ist dann "schlecht" und wenn er bei 0 liegt dann "ohne"!

Vielen Dank

Antwort 9 von coros

Hallo Bernhard,

kopiere nachfolgenden VBA-Code in das VBA-Projekt des Tabellenblattes, in dem sich die Werte für den Verbrauch befinden.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Range("B3")
'Wenn Verbrauch kleiner 32 dann Text "sehr gut" in Zelle C3 ausgeben
Case Is < 32
Range("C3") = "sehr gut"
'Wenn Verbrauch zwischen 32 und 34 dann Text "gut" in Zelle C3 ausgeben
Case 32 To 34
Range("C3") = "gut"
'Wenn Verbrauch größer 34 dann Text "schlecht" in Zelle C3 ausgeben
Case Is > 34
Range("C3") = "schlecht"
End Select
End Sub


Bei dem Beispiel werden Dir die Texte "sehr gut", "gut" und "schlecht" entsprechend dem Verbrauch aus Zelle B3 in Zelle C3 angezeigt. Sollen die texte in einer anderen Zelle angezeigt werden, so muss in dem VBA-Code überall wo "C3" steht die neue Zellbezeichnung eingetragen werden.

Ich hoffe, Du kommst klar.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 10 von MixMax

empfehle VBA wegzulassen...

Nun soll angezeigt werden wenn der Wert in der Zelle B3 unter 32 liegt, dann "sehr gut", wenn er zwischen 32 und 34 liegt "gut" und wenn er über 34 ist dann "schlecht" und wenn er bei 0 liegt dann "ohne"!

=wenn(B3=0;"ohne";wenn(B3<32;"sehr gut";wenn(B3<34;"gut";"schlecht")))


Denk dran aus B3 $B$3 oder B$3 oder $B3 zu machen wenn du B und oder 3 statisch an einer festen stelle haben möchtest und die Zelle mit der Formel kopieren/verschieben möchtest.

vba kann bei großen Tabellen u.U. in mehrere minuten bis stunden aktivität führen (habe das mal bei einer funktion die 2 Spalten miteinander vergleichen soll erlebt)

Antwort 11 von bernhard3

Schönen guten Morgen!

Vielen Dank Oliver, es hat geklappt!

Ich brauch aber nochmal Hilfe zu diesem Thema.

Wie bekomme ich das hin:
die Werte stehen jetzt untereinander in einer Spalte angefangen bei B3, wie kann ich jetzt für die anderen zellen unter C3 die Texte einfügen?

Kenn mich leider gar nicht mit VBa aus, aber es ist spannend immer dazu zulernen!

MFG
Bernhard

Antwort 12 von coros

Hallo Bernhard,

dann sieht der Code wie folgt aus. Tuasche ihn gegen den alten aus.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Select Case Target.Value
'Wenn Verbrauch kleiner 32 dann Text "sehr gut" in Spalte C gleiche _
Zeile wie der Eintrag in Spalte B C3 ausgeben
Case Is < 32
Target.Cells.Offset(0, 1) = "sehr gut"
'Wenn Verbrauch zwischen 32 und 34 dann Text "gut" in Spalte C gleiche _
Zeile wie der Eintrag in Spalte B C3 ausgeben
Case 32 To 34
Target.Cells.Offset(0, 1) = "gut"
'Wenn Verbrauch größer 34 dann Text "schlecht" in Spalte C gleiche _
Zeile wie der Eintrag in Spalte B C3 ausgeben
Case Is > 34
Target.Cells.Offset(0, 1) = "schlecht"
End Select
End If
End Sub


Hier wird in der gleichen Zeile, in der die Zahl eingetragen wird, in Spalte C die definierten Texte ausgegeben.

Bei Fragen oder Problemen melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 13 von bernhard3

Hallo Oliver!

Also irgenwie klappt das nicht. Der Text wird nur in Zelle C3 angezeigt. Bitte nochmal um Hilfe!

Vielen Dank im Voraus

MfG
Bernhard

Antwort 14 von coros

Hallo Bernhard,

wie kommen die Werte, also z.B. die Zahl 32 in die Zellen in Spalte B? Werden diese dort per Hand eingetragen oder kommen die ebenfalls über eine Formel?

Warum nimmst Du eigentlich nicht MixMax Lösung? Damit sollte das doch ebenfalls funktionieren.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 15 von bernhard3

Hallo Oliver,

die Werte kommen über eine Formel und verändern sich ständig!

Soweit fit bin ich in Excel leider nicht!

Danke Bernhard

Antwort 16 von coros

Hallo Bernhard,

dann sollte es mit nachfolgendem Code funktionieren. Tausche ihn wieder gegen den alten aus.

Option Explicit

Private Sub Worksheet_Calculate()
Dim rng As Range
For Each rng In Range("B3:B10")
Select Case rng
'Wenn Verbrauch kleiner 32 dann Text "sehr gut" in Spalte C gleiche _
Zeile wie der Eintrag in Spalte B C3 ausgeben
Case Is < 32
rng.Offset(0, 1) = "sehr gut"
'Wenn Verbrauch zwischen 32 und 34 dann Text "gut" in Spalte C gleiche _
Zeile wie der Eintrag in Spalte B C3 ausgeben
Case 32 To 34
rng.Offset(0, 1) = "gut"
'Wenn Verbrauch größer 34 dann Text "schlecht" in Spalte C gleiche _
Zeile wie der Eintrag in Spalte B C3 ausgeben
Case Is > 34
rng.Offset(0, 1) = "schlecht"
End Select
Next
End Sub


Du musst in dem Code in der Zeile

For Each rng In Range("B3:B10")


noch den Bereich anpassen. Trage dort zwischen die beiden Anführungszeichen ( "" ) den Bereich ein, in dem sich bei Dir die Daten in Spalte B vbefinden und ausgewertet werden sollen.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 17 von bernhard3

Hallo Oliver,

vielen vielen Dank!

Es klappt endlich!

Danke Bernhard

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: