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

IF-Abfrage dynamisch erstellen

IF-Abfrage dynamisch erstellen
15.11.2015 18:10:48
Chris
Hallo zusammen,
Ich habe ein Problem mit einer Excel-Tabelle und deren integriertem VBA-Script.
Folgende Ausgangssituation:
Tabellenblatt "Masterdaten"
Inhalt eine Tabelle mit 6000 Zeilen und 10 Spalten
Tabellenblatt "Gruppen"
Inhalt eine Tabelle mit 10 Zeilen (stellt die Werksgruppe in Spalte A dar" und 8 Spalten (stellen die Werke dar)
In der letzten Spalte wird die Formel für die IF-Bedingung im VBA zusammengestellt.
Das VBA-Script soll nun die Daten aus dem Tabellenblatt "Masterdaten" in eine Datei exportieren und dabei nur die Daten exportieren in denen die Bedingung aus dem Tabellenblatt "Gruppen" übereinstimmt.
Beispiel "Gruppe" ist und die dahinterliegenden Werke sind WerkA und WerkB
Die IF-Bedinung soll bei allen Zeilen aus dem Tabellenblatt "Masterdaten" nur die Zeilen bearbeiten in denen die Spalte C der jeweiligen Zeile den Wert WerkA oder WerkB hat.
For 1 to 6000
If Cells(C, Zeile) "WerkA" And Cells(C, Zeile) "WerkB" Then
'Zeile wird von der Bearbeitng ausgeschlosssen
exit for
Else
'Zeile wird weiter bearbeitet
End IF
Next
Wenn ich die IF-Bedingung manuell eintrage funktioniert die Formel perfekt. Da sich die Bedingung aber häufig ändert wollte ich die Formel in dem Tabellenblatt "Gruppen" in der letzten Spalte automatisch generieren (funktioniert) und dann mittels einer Variablen nutzen.
ML_Filter = WorkSheets("Gruppen").Cells("J2")
'Variable ML_Filter enthält dann
' Cells(C, Zeile) "WerkA" And Cells(C, Zeile) "WerkB"
'Wert des Filter wurde mit MsgBox geprüft
For 1 to 6000
If ML_Filter Then
'Zeile wird von der Bearbeitng ausgeschlosssen
exit for
Else
'Zeile wird weiter bearbeitet
End IF
Next
Bei der obigen Implementierung bekomme ich immer den Fehler:
Fehler 13: Typen unverträglich
Kann mir jemand mit einer Idee helfen, wie ich die IF-Abfrage dynamisch gestalten kann. Die Anwender können das nicht in VBA anpassen.
Vielen Dank für die Hilfe im vorraus.
Chris

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

Betreff
Datum
Anwender
Anzeige
Beispieldatei
15.11.2015 19:18:37
Michael
Hi Chris,
ich würde es vorziehen, wenn Du uns "echtes" VBA zitieren würdest: For 1 to 6000 kann nicht laufen.
Was Du in J2 rechnest, wissen wir auch nicht bzw. ob Du hier pro Schleifendurchlauf irgendwelche Werte zuweist.
Kurzum: wir sind keine Hellseher, um am einfachsten läßt sich ein Fehler mit einer anonymisierten Beispieldatei beheben.
Schöne Grüße,
Michael

Beispieldatei
16.11.2015 09:23:50
Chris
Hallo zusammen,
Anbei eine Beispieldatei mit Daten und den Scripten. Die Problempassage ist mit 'Forum: gekennzeichnet. Sie befindet sich circa in der Mitta des allgemeinen VBA-Codings.
https://www.herber.de/bbs/user/101543.zip
Vielen Dank für die Hilfe im vorraus.
Chris

Anzeige
Falsche Excel Version angegeben
16.11.2015 10:15:25
Chris
Im Beitrag ist die falsche Excelversion angegeben. Es handelt sich um ein Dokument, welches mit der Excel Version Office Standard 2013 erstellt wurde.
Der Dateianhang ist in der Folgenachricht vom 16.11.2015 um 09:23:50 hinterlegt.

Test mal...
16.11.2015 19:37:41
Michael
Hi Chris,
ich habe Deinen Code etwas aufgepäppelt und insbesondere an den Anfang des Moduls ein "option explicit" gesetzt, das sorgt nämlich dafür, daß Du Deine Variablen sauber deklarieren mußt.
Weiterhin habe ich die Logik geändert: zu Beginn werden alle Werte, soweit vorhanden, in einen (Filter-) String eingelesen, der dann wiederum in der Schleife ausgewertet wird.
Die Ausgabe sieht prinzipiell gut aus, allerdings darfst Du Dich beim ersten Test nicht wundern, daß Du im Browser scheinbar "nichts" siehst, denn letzterer zeigt bei einer Tabellenbreite von 2300 oder so die "erste" Spalte mit den nbsp so breit an, daß Deine Wert erst ganz rechts erscheinen.
Ich habe (fast) überall, wo ich was geändert habe, ein "Michael" als Kommentar gesetzt.
Die Datei: https://www.herber.de/bbs/user/101568.zip
Happy Exceling,
Michael

Anzeige
Rückmeldung?
20.11.2015 19:01:23
Michael
Hi Chris,
funktioniert's?
Melde Dich mal,
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige