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

Vergleichen mit mehreren Bedingungen

Vergleichen mit mehreren Bedingungen
12.03.2019 13:48:47
Memo
Hallo zusammen,
ich stehe wieder einmal vor einer Herausforderung bei der ich um eure Unterstützung bitte.
Zur einfachen und schnellen Verständigung habe ich euch ein Bild hochgeladen.
Ich habe eine große Pivot Tabelle in der verschiedene Daten stehen. Diese Pivot Datei wird jede Woche neu erstellt. Mit dieser neu erstellten Datei wird diese 1 x die Woche analysiert, d.h. jede Woche wiederkehrende Ausführungen. Mit Excel Formeln habe ich mein Ziel nicht einmal ansatzweise hinbekommen. Ich hoffe Ihr könnt mir dabei helfen.
Beim Ausführen des Makros soll es folgendes tun:
Betrachte Bereich A2 bis A5000.
Lese erstmal A2 aus. Wenn in A2 "V1" steht dann springe zu Nebenspalte von V1 (also zu FM), Wenn in A2 "V2" steht dann springe zu Nebenspalte von V2 (also zu FO), Wenn in A2 "V3" steht dann springe zu Nebenspalte von V3 (also zu FQ), Wenn in A2 "V4" steht dann springe zu Nebenspalte von V4 (also zu FS), Wenn in A2 "V5" steht dann springe zu Nebenspalte von V5(also zu FU) und vergleiche das Datum welches in dieser Zelle (also ZielDat.) steht mit dem aktuellen Datum + 1 Monat. Wenn das Datum in dieser Zelle das aktuelle Datum + 1 Monat übersteigt, dann nichts unternehmen.
Wenn es nicht übersteigt, dann komplette Zeile gelb füllen.
Lese A3 aus....usw
Und zum Schluss alle Gelb gefüllten Zeilen Filtern (sodass nur die gelb gefüllten Zeilen) angezeigt werden.
Wenn in den Zellen von A2 bis A5000 alles andere als V1,V2,V3,V4,V5 steht, dann nichts unternehmen.
Diese Prozedur soll für alle Zellen bis A5000 ausgeführt werden.
Anbei der Link zum Bild:
Userbild
Besten Dank an alle die etwas beitragen
Grüße
Memo

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vergleichen mit mehreren Bedingungen
12.03.2019 14:28:49
Daniel
Hallo Memo,
magst du die Datei mal bitte hochladen? Es ist doch etwas mühsam, das alles nachzubauen und das komplett blind zu schreiben auch.
Gruß
Daniel
AW: Vergleichen mit mehreren Bedingungen
12.03.2019 15:56:57
Daniel
Ist vielleicht nicht die eleganteste Lösung, aber für dein Beispiel funktioniert's:
Sub Filtern()
Dim cell, Zielzelle As Range
For Each cell In Range("A:A").SpecialCells(xlCellTypeConstants)
If cell.Value = "V1" Or cell.Value = "V2" Or cell.Value = "V3" Or cell.Value = "V4" Or cell. _
Value = "V5" Then
Set Zielzelle = Range("1:1").Find(cell.Value)
If Year(Zielzelle.Offset(cell.Row - 1, 1)) & Format(Month(Zielzelle.Offset(cell.Row - 1,  _
1)), "0#") 

Anzeige
AW: Vergleichen mit mehreren Bedingungen
12.03.2019 16:13:32
Memo
Super Danke, funktioniert tadellos.
Kann man die aktuelle Ansicht nach ausführen des Makros als separate Datei abspeichern lassen?
Also wenn das Makro die Aufstellung mit den gelben Zeilen fertiggestellt hat, soll es mich fragen unter welchem Namen die Datei abspeichert werden soll.
Das ist echt Nett und superschnell von dir.
Danke.
VG
Memo
AW: Vergleichen mit mehreren Bedingungen
12.03.2019 16:39:55
Daniel
Dann vorher das Ganze in eine neue Mappe kopieren:
Sub Filtern()
Dim cell, Zielzelle As Range
Dim ws As Worksheet
ActiveSheet.Copy
Set ws = ActiveSheet
With ws
For Each cell In .Range("A:A").SpecialCells(xlCellTypeConstants)
If cell.Value = "V1" Or cell.Value = "V2" Or cell.Value = "V3" Or cell.Value = "V4" Or  _
cell.Value = "V5" Then
Set Zielzelle = .Range("1:1").Find(cell.Value)
If Year(Zielzelle.Offset(cell.Row - 1, 1)) & Format(Month(Zielzelle.Offset(cell.Row -  _
1, 1)), "0#") 
Gruß
Anzeige
AW: Vergleichen mit mehreren Bedingungen
12.03.2019 17:05:12
Memo
Hi Daniel,
der Code funktioniert in meiner Nachbildung-datei, jedoch leider nicht in der originalen Pivot Tabelle.
Nach Ausführen in der Pivot Tabelle kommt weder eine Fehlermeldung noch tut sich etwas.
An was könnte es liegen, dass das Makro in der Pivot nicht funkt?
VG
Memo
AW: Vergleichen mit mehreren Bedingungen
13.03.2019 09:01:48
Daniel
Eine Pivot Tabelle ist etwas ganz anderes als eine normale Excel Tabelle. Das kann nicht funktionieren. Mir ist aber auch nicht klar, wie deine Daten als Pivot Tabelle aussehen.
Generell solltest du deine Vorlage möglichst nah am Original Dokument halten und nur inhaltlich Daten anonymisieren und/oder kürzen. Darauf wird ja die Lösung abgestimmt. Wenn deine "echte" Datei dann ganz anders aussieht ist das sehr ärgerlich und hilft dir auch nicht weiter.
Kurz gesagt, diese Lösung wird dir bei einer Pivot Tabelle nichts nützen.
Anzeige
AW: Vergleichen mit mehreren Bedingungen
13.03.2019 11:15:44
Memo
Hi Daniel,
Ich habe die Pivot Tabelle ein wenig geändert, Zeile 1 entfert, und den Code erneut durchlaufen lassen. Diesmal hat es funktioniert jedoch nur teilweise. Er bringt mir nur 1 Gelb gefärbte Zeile obwohl er einige mehrere bringen müsste. Danach kommt diese Fehlermeldung:
"Objektvariable oder With-Blockvariable nicht festgelegt. Laufzeitfehler '91'"
Wahrscheinlich lassen zuvor programmierte Makros die Bearbeitung dieser Pivot nicht zu. Dies könnte man vielleicht umgehen indem der Code das Ergebnis dieser Pivot als eine separate Excel Datei (ohne Makro) zur Verfügung stellt und der Benutzer nur den Speicherort und name zu wählen hat.
Gerne würde ich die Pivot hier hochladen aber es ist sehr groß, daher habe ich den zu betrachtenden Bereich als unveränderte Variante als Jpeg hochgeladen.
Bereich M:M ist zu vergleichen mit Bereich CD:CD; CF:CF;..immer die (Plan) Zeilen.
Besten Dank für deine genommene Zeit und die Unterstützung.
Userbild
VG
Memo
Anzeige
AW: Vergleichen mit mehreren Bedingungen
13.03.2019 14:23:24
Daniel
Hast du denn den Code auf die veränderte Tabellenform angepasst? Es müssen jetzt offensichtlich andere Spalten und Zeilen angesprochen werden (Änderungen fett):
For Each cell In .Range("M:M").SpecialCells(xlCellTypeConstants)
Set Zielzelle = .Range("2:2").Find(cell.Value, , , xlPart)
Probier mal ob das reicht
AW: Vergleichen mit mehreren Bedingungen
13.03.2019 16:11:18
Memo
Hi,
ja den Code habe ich auf die neue Tabelle schon vorher angepasst.
Diesmal habe ich nur noch den Zusatz ...xlPart) dahinter drangehängt. Habe sogar vorher die Pivot Tabelle bis Zeile 500 Kopiert und in eine neue Excel File als Werte eingefügt, Datumszellen formatiert, und dein Code erneut drüber laufen lassen.
Die Fehlermeldung kommt noch immer, nur 1 Zeile wird Gelb hervorgehoben und zusätzlich wird der folgende Teil des Codes gelb hinterlegt: ab If Year(Zielzelle.Offset(cell.Row - 1, 1) bis )Then.
Wahrscheinlich tu ich beim ausführen, oder einfügen oder sonst noch was falsch machen.
VG
Anzeige
AW: Vergleichen mit mehreren Bedingungen
13.03.2019 16:39:20
Daniel
Vielleicht, kann ich dir leider nicht sagen ohne selber in der Tabelle zu arbeiten.
AW: Vergleichen mit mehreren Bedingungen
13.03.2019 17:36:07
Memo
Dennoch besten Dank für die genommene Zeit und dein Geduld.
Nichtsdestotrotz habe ich mein VBA Wissen durch deine Unterstützung erweitern können.
Angenehmen Restabend
Grüße,
Memo

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige