Ich habe eine Excel Datei mit 4 Tabellenblättern (M1,M2, M3, M4). Die Daten in den Tabellenblättern werden mit Power Query abgefragt. Weiteres mache ich mit einer Bedingten Formatierung eine Spezifikationsabfrage. Alle Zellen in denen die Spezifikation verletzen werden, werden rot eingefärbt.
Jetzt hätte ich gerne alle Zeilen die eine rote Zelle beinhalten in einer Übersicht untereinander angeordnet. Und die sollen auch nicht überschrieben werden sondern fix dort stehen bleiben. Ich habs schon mit Makro aufzeichnen versucht aber das funktioniert nicht wirklich und VBA programmieren liegt mir leider nicht
Du kannst die verschiedenen Spalten eines Blattes der Reihe nach manuell nach Farbe filtern, die Daten kopieren und an gewünschter Stelle einfügen. Dort bleiben sie dann ... Du könntest auch die Formeln, die zu der Einfärbung führen, in einer Hilfsspalte zusammenfassen und dann nach den Ergebnissen dieser Spalte filtern, da hättest Du alles mit einem Rutsch.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Hi schauan! Vielen Dank für deine Antwort! Das mit dem filtern habe ich schon versucht. Ich habe eine Hilfsspalte eingefügt, wo ich abgefragt habe ob eine Zelle rot ist, dann soll er "ja" in die Zelle schreiben, sonst nein. Danach habe ich ein Makro aufgezeichnet mit folgenden Schritten: Hilfsspalte filtern nach "ja" dann Zeile kopieren und in die Übersicht einfügen. Das funktionierte so lange, bis keine Zelle rot war, dann konnte EXCEL beim Filtern kein "ja" finden und hat die gesamte Liste kopiert und in die Übersicht eingefügt?!?! Und das nächste Problem war, dass die Daten in der Übersicht bei jeder Abfrage (start des Makros) die Daten überschrieben hat. Ich brauche die Daten in der Übersicht aber fix, denn ich muss die dort weiter bearbeiten, z.B. Was wurde unternommen um die verletzte Spezifikation zu beheben. (Wiederholung der Messung, Sperren des Teiles usw.)
also, eine Liste kann man ja nach vorhandenen Einträgen filtern oder auch nach leeren Zellen - Du müsstest in der Auswahlliste "ja" und "Leere" sehen. Damit Du nur "ja" siehst hast Du doch die leeren schon abgewählt und nichts ist mehr sichtbar.
Im Code hast Du irgendwo den Bereich zum Kopieren und das Kopieren.
Im Prinzip so
Range("A1:Z789").Select Selection.Copy
Das muss man nur etwas ändern - auf sichtbare Daten (Zeilen+Spalten) beschränken. Dabei kann man Select und Selection gleich zusammenfassen.
Hi! Danke noch mal! Genau da ist mein Problem! Wenn keine Zelle rot ist erscheint im Filter auch kein "ja" zur Auswahl. Dann kopiert Excel die gesamte Liste und fügt die Werte in meine Übersicht so wie ich es im Makro aufgezeichnet habe
Also bräuchte ich ein Makro, welches nach roten Zellen sucht und dann die gesamte Zeile der roten Zelle in meine Übersicht kopiert.
Wenn in der Liste keine "ja" vorkommen, weil keine Spezifikation verletzt wurde, dann habe ich bei der Filterauswahl keine Möglichkeit nach "ja" zu filtern. In diesem Fall lässt Excel die gesamte liste stehen und mein aufgezeichnetes Makro kopiert dann die gesamte Liste, weil ja kein "ja" vorkommt. SO sieht das bei mir dann aus! Danke Charles
[ Bild bitte so als Datei hochladen: Klick mich! ]
in der Filterauswahl muss doch dann nur noch "Leere" stehen. Wenn Du dort den Haken raus nimmst ist von der Liste nix zu sehen. Wenn Excel dann per Specialcells nur die sichtbaren kopieren soll wird nix kopiert.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
13.08.2021, 07:50 (Dieser Beitrag wurde zuletzt bearbeitet: 13.08.2021, 07:51 von Kuwer.)
Hallo Charles,
(12.08.2021, 06:06)Charles619 schrieb: Wenn in der Liste keine "ja" vorkommen, weil keine Spezifikation verletzt wurde, dann habe ich bei der Filterauswahl keine Möglichkeit nach "ja" zu filtern. In diesem Fall lässt Excel die gesamte liste stehen und mein aufgezeichnetes Makro kopiert dann die gesamte Liste, weil ja kein "ja" vorkommt.
Mache einfach um den Kopiercode eine Abfrage, ob "ja"´s vorkommen:
Code:
If Application.CountIf(Columns(16), "ja") Then MsgBox "Hier steht dann der Kopiercode."