Excel Hilfe?
Guten Tag,
ich habe ein Aufgabenblatt über Excel erhalten das ich bearbeiten soll.
Ich müsste das tun auß einer Tabelle bzw Liste:
⦁ Schreiben Sie ein Makro, das eine bedingte Formatierung der Spalte "Regen" in allen Tabellenblättern simuliert: Steht in der Zelle der Wert 0 (kein Regen), färben Sie den Hintergrund grün. Andernfalls färben Sie den Hintergrund rot und setzen Sie die Schriftfarbe (Cells(…).Font.Color) auf weiß.
Hinweis: Für die volle Punktzahl muss die Formatierung für alle Blätter und für alle Zeilen mit einer if-Abfrage in einer geschachtelten for-Schleife erfolgen. Falls Ihnen das nicht gelingt, können Sie auch Teilpunkte bekommen:
Nur weiß ich nicht, wie der befehl geht das alles resetet wird, bei Neustart von Excel. Was mir auch noch unklar ist, wie ich den Makro (VBA) auch für alle Tabellen oder Seiten nutzen kann.
Wie ist der befehl zum Markieren z.b. nicht nur von A1 und A6, sondern auch dazwischen also A1-A6, ist es Cells oder einfach Range("A1":"A6") ?
Ich würde ihre Hilfe gerne annehmen und bin bemüht das zu erledigen.
Falls sich jemand gut mit Excel auskennt, können wir auch per Discord schreiben/übertragen. Kann gerne auch was kleines als Belohnung geben, da ich denke wenn sich jmd mit Excel auskennt, ist das ein klacks für ihn.
Mfg
A.F
Hier die aufgabe und datei
Excel mäßig glaub ich wäre der SubOptimierer der Beste bzw. sehr gut darin.
Hast du ein Foto von der Originalen Aufgabenstellung ?
Wo ist der Spaltenüberschrift Regen?
Lg
Bin gerade an ein paar sachen am anschauen, aber gibt nicht das was ich will irgendwie.
Ja ich schicke es gleich rein.
SubOptimierer?
2 Antworten
Makros aktivierst du folgendermaßen: Registerkarte Datei, dann Sicherheitswarnung ativieren, erweiterte Optionen und schließlich Makros aktivieren. Vergiss danach nicht die Tabellen im Excel Format abzuspeichern.
Hier mal ein Stück Code, dass eine bereits vorhandene Regel auf den gewünschten Bereich erweitert:
Worksheets("Tabelle").Cells.FormatConditions(1).ModifyAppliesToRange Range("A10:A1000")
Per Makro Aufzeichnung erhälst du den Code für das Erstellen oder auch Löschen
Range("E2", "E32").Value = 0
Hier werden "zwei" Zellen die NULL zugewiesen
Range("E2:E32").Value = 0
Hier werden dem ganzen Bereich E2->E32 die Null zu gewiesen.
Eine IF Abfrage kann NICHT auf eine Bereich angewandt werden.
If Range("E2:E32").Value = 0 then geht nicht, da Excel nicht wissen kann gegen welche Zelle genau zu testen ist.
So etwas sollte aber gehen.
Range("E2:E32").Interior.Color = vbGreen
===
ABER: Dies hat alles nicht mit "Conditional Formatting" zu tun.
===
Bedingte Formatierung ist eine Excel native Funktionalität, die erstmal OHNE VBA Zellformate inhaltstechnisch ändert.
====
Aber auch dieses kann per VBA komplett automatisiert werden.
Ja aber der befehl macht ja alles grün, ich möchte in der Liste oben mit "Regen" die Werte mit 0 Regen grün markieren lassen, die wo z.B. 1,8 sind Rot.
wie gesagt. Es geht in diesem Code um den Zugriff auf einen Bereich NICHT um Conditional Formating.
Ich schlage vor du zeichnest mal das Einbringen einer "Bedingten Format" Regel auf um den Unterschied zu sehen.
Range("A10:A1000") immer wenn ich sowas eingebe in VBA, kommt immer eine Fehler meldung, ich weiß auch nicht warum.
Wenn ich dazwischen nur ein komma mache sprich so Range("A10,A1000"), geht es aber nimmt dann nur beide zeilen. Was ich nicht verstehe.
Sub Regen()
Range("E2", "E32").Value = 0
If Range("E2").Value = "0" Then
Range("E2").Interior.Color = vbGreen
Else
Range("E2").Interior.Color = vbRed
End If
End Sub
Das hier geht, nur will ich ja die ganze liste. Also Nicht nur E2, sondern E2-E32,
Darum versteh ich nicht warum Range("E2"; oder : "E32") nicht geht, oder muss dort Cells stehen?