VBA
#1
Hi ihr Lieben!

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 nichtSad

Vielen Dank für eure Hilfe
Charles


Angehängte Dateien
.xlsx   Spez. Auswertung.xlsx (Größe: 79,03 KB / Downloads: 8)
Antworten Top
#2
Hallöchen,

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)
Antworten Top
#3
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.)

Vielen Dank 
Charles
Antworten Top
#4
Hallöchen,

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.

Range("A1:Z789").SpecialCells(xlCellTypeVisible).Copy

Z789 müsstest Du auf die Grenze des gesamten Bereichs anpassen.


Der zweite Punkt ist das Anfügen von Daten.

In Deinem Code steht eventuell ein Blattwechsel und das Einfügen in A1

Im Prinzip so:

Sheets("Tabelle2").Select
Range("A1").Select
Selection.Paste

Statt A1 müsste man nun eine Zelle unter der letzten belegten nehmen. Das kann man so machen:

Sheets("Tabelle2").Select
Range("A" & Cells(Rows.Count, 1).End(xlUp).Row) +1 ).Select
Selection.Paste

Was da passiert kann man sich ggf. aus der deutschen Übersetzung erschließen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
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 Huh

Also bräuchte ich ein Makro, welches nach roten Zellen sucht und dann die gesamte Zeile der roten Zelle in meine Übersicht kopiert.

Oder stehe ich jetzt auf der Leitung?

Danke
Charles
Antworten Top
#6
Hallöchen,

bei mir sah es bei einem leeren Bereich so aus:

   

und hier mal noch die Daten dazu

Arbeitsblatt mit dem Namen 'Tabelle1'
AB
1was
2
3
4

ZelleFormel
A2=WENN(B2<>"";"Ja";"")
A3=WENN(B3<>"";"Ja";"")
A4=WENN(B4<>"";"Ja";"")
Verwendete Systemkomponenten: [Windows (64-bit) NT 10.00] / MS Excel 2019
Diese Tabelle wurde mit Tab2Html (v2.7.1) erstellt. ©Gerd alias Bamberg
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
Hi Andre,
Ich verstehe es noch immer nicht 20

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!
]
Antworten Top
#8
Hallöchen,

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)
Antworten Top
#9
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."
     
    End If

Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste