Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1224to1228
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

Zellbereiche färben

Zellbereiche färben
ptonka
Hallo zusammen,
folgendes Problem:
Ich habe eine lange Liste von Produkten mit unterschiedlichen Produktkategorien.
Die Liste umfasst die Spalten A bis H.
In der Spalte Produktkategorie stehen sich wiederholende Angaben, welche aber gruppiert sind.
Also z.B.
Zeile 1 Produktkategorie
Zeile 2 Pflanzen
Zeile 3 Pflanzen
Zeile 4 Pflanzen
Zeile 5 Gemüse
Zeile 6 Gemüse
Zeile 7 Blumen
Zeile 8 Blumen
Zeile 9 Blumen
u.s.w.
Ich benötige nun ein Makro, welches mir in Abhängigkeit von der Produktkategorie den jew. Zeilenbereich (von Spalte A bis H) abwechselnd blau bzw. gelb einfärbt, so dass jede Produktkategorie farblich abgegrenzt wird. D.h. im obigen Beispiel sollten der Bereich A2:H4 (Pflanzen) blau gefärbt werden, der Bereich danach A5:H6 (Gemüse) gelb - der Bereich danach (Blumen) A7:H9 wiederum blau - und so weiter - immer abwechselnd. Leider gelingt mir das Makro nicht, so dass ich auf Eure Hilfe abgewiesen bin. Bei über 16.000 Einträgen ist das händisch ein wenig aufwändig.
Danke im Voraus,
Ptonka

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Weshalb VBA ? - Geht auch per Bed.Formatierung
29.07.2011 15:15:12
NoNet
Hallo Ptonka,
auch wenn ich ein VBA-Fan bin schlage ich Dir hier eine Lösung mit "Bordmitteln" (Bedingte Formatierung) vor :
Markiere den Datenbereich (ohne die Überschriften) - z.B. A2:H10 und wähle "Format - Bedingte Formatierung" aus.
Wähle als "Bedingung 1" Formel ist aus und gib folgende Funktion ein :
=REST(SUMME(1/ZÄHLENWENN($A$2:$A2;$A$2:$A2));2)
Wähle dann per "Format... - Muster" eine Hintergrundfarbe aus.
Füge eine 2.Bedingung hinzu (wieder Formel ist) und gib folgende Funktion ein :
=REST(SUMME(1/ZÄHLENWENN($A$2:$A2;$A$2:$A2));2)=1
und wähle erneut per "Format... - Muster" eine Hintergrundfarbe aus.
Und so könnte dann das Ergebnis aussehen :
Userbild
Gruß, NoNet
Exceltreffen 28.-30.10.2011 in Chemnitz
Ein Treffen für alle Excel-Freunde und Besucher deutschsprachiger Excel-Foren.
Alle Infos - Programm - Anmeldung - Teilnehmerliste etc. gibt es auf
http://www.exceltreffen.de/index.php?page=211
Wir freuen uns auf euch...

Anzeige
Kleine Korrektur der Bed.Formatierung
29.07.2011 15:17:59
NoNet
Sorry Ptonka,
da war ein kleiner Fehler drin: Beide Funktionen ergaben natürlich das gleiche Ergebnis !
Ändere eine der beiden Funktionen folgendermassen ab :
=REST(SUMME(1/ZÄHLENWENN($A$2:$A2;$A$2:$A2));2)=0
Jetzt sollte es "flutschen" ;-)
Salut, NoNet
Exceltreffen 28.-30.10.2011 in Chemnitz
Ein Treffen für alle Excel-Freunde und Besucher deutschsprachiger Excel-Foren.
Alle Infos - Programm - Anmeldung - Teilnehmerliste etc. gibt es auf
http://www.exceltreffen.de/index.php?page=211
Wir freuen uns auf euch...

Anzeige
Bei mir will die Formel nicht so richtig
29.07.2011 17:35:09
Matthias
Hallo Nonet,
habe Office 2010 und ein Beispieldatei angefügt mit deiner Formel,
irgentwie funktioniert die nicht so wie sie sollte.
Liegt das an der Office Version ?
Ich Lass mal die Frage offen, eventuell kommt noch wer mit VBA Lösung , wäre nett.
Schau mal bitte nach, Danke
Datei: https://www.herber.de/bbs/user/75940.xlsx
Gruß Matthias
Doppelt gerundet hält besser ;-))
29.07.2011 20:49:03
NoNet
Hallo Matthias,
das Problem ist hier nicht die Funktion selbst, sondern der interne Rechengenauigkeit, die zu Rundungsfehlern führt, denn die Matrizensumme ergibt eben nicht immer GENAU 0 oder 1 sondern auch mal 0,0000000131 oder 0,999999784 oder auch 1,00000012 - und das entspricht eben nicht den in der Bedingten Formatierung angegebenen Werten 0 oder 1 !!
Excel rechnet hier exakter wenn man sowohl die einzelnen Matrixergebnisse wie auch das Endergebnis auf 0 Stellen rundet. Probiere es daher also mal mit folgenden Funktionen :
=RUNDEN(REST(RUNDEN(SUMME(1/ZÄHLENWENN($A$1:$A2;$A$1:$A2));0);2);0)=0
und :
=RUNDEN(REST(RUNDEN(SUMME(1/ZÄHLENWENN($A$1:$A2;$A$1:$A2));0);2);0)=1
Das klappt bei mir fehlerfrei ! - "Doppelt gerundet" hält ja bekanntlich auch besser ;-))
Salut, NoNet
Exceltreffen 28.-30.10.2011 in Chemnitz
Ein Treffen für alle Excel-Freunde und Besucher deutschsprachiger Excel-Foren.
Alle Infos - Programm - Anmeldung - Teilnehmerliste etc. gibt es auf
http://www.exceltreffen.de/index.php?page=211
Wir freuen uns auf euch...

Anzeige
AW: Doppelt gerundet hält besser ;-))
02.08.2011 13:01:41
ptonka
Hallo an alle,
vielen Dank für die Tipps. Hat geklappt (nach dem runden) !
Obwohl ich mir auch eine VBA-Lösung gewünscht hätte.
Wenn einer eine Idee hat - nur her damit.
Gruß,
Ptonka

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige