ich stehe mal wieder aus meiner Sicht - vor einem komplizierten Problem und weiß nicht, wie ich das anpacken soll. Das ist das erste Mal, dass ich Userforms verwende und irgendwie scheint dies eine völlig neue Welt zu sein. Google und die Forensuche haben mich leider auch noch nicht wirklich weitergebracht.
Ich habe eine Liste, die ich nahezu täglich auswerten muss. Eine Herausforderung besteht in der Geschwindigkeit des Makros, da innerhalb eines Monats etwa 30000 Zeilen in die Liste kommen und ich sowohl Tages-, Wochen-, Monats- und Jahresdaten auswerten soll. Jeden Tag importiere ich neue Daten. Ein Teil meines Auswerte-Makros (Farbzuweisung für bestimmte Suchwerte) steht bereits und funktioniert soweit. (Also nicht über den Aufbau der Demo-Datei wundern. ;-) ) Für den zweiten Teil der Auswertung (= Demo-Datei) brauche ich dringend Spezialisten-Hilfe.
Hier die Demo-Datei:
https://www.herber.de/bbs/user/48005.xls
Grundsätzlich besteht die Aufgabe darin, aus dem Tabellenblatt Übersicht mittels Filter (FilterMaske) die gewünschten Daten (komplette Zeile) in das Tabellenblatt Gefilterte Daten zu kopieren. An sich keine komplizierte Aufgabe, wenn da der Filter nicht wäre
Infos zu den Tabellen:
Tabelle Übersicht:
Hier stehen alle gesammelten Daten drin, die ich täglich importiere.
Tabelle Einstellungen:
Hier werden von dem Teil, der bereits funktioniert Farben für bestimmte Suchwerte eingestellt, über einen Button neue Daten in das Blatt Übersicht geholt und das Auswerte-Makro gestartet. (Der Einfachheit halber ist in der Demo-Datei nur der Button zum Start der Userform vorhanden)
Tabelle Gefilterte Daten:
In diesem Tabellenblatt sollen nach Anwendung - des in der Userform der Demo-Datei dargestellten Filters - die entsprechenden Zeilen aus der Tabelle Übersicht kopiert werden, wo dann der bereits funktionierende Teil der Auswertung vorgenommen wird. (Farbzuweisung für bestimmte Suchwerte)
Tabelle Import-Liste:
Hier werden lediglich die Dateinamen der bereits importierten Datenfiles angezeigt.
Userform (FilterMaske):
Datum (Tabelle Übersicht, Spalte D):
Ich denke, das ist selbsterklärend, ideal wäre zusätzlich die Option für von/bis ein Kalendersteuerelement einzusetzen, zumal sich die Felder ja nicht automatisch auf die korrekte Schreibweise TT MM JJJJ einstellen. Der Eintrag für die Nutzung von/bis soll überprüft werden, ob das erste Datum vor dem zweiten liegt.
InvNr (Tabelle Übersicht, Spalte M): 14-stellig, 6 Felder
Diese wird immer in der gleichen Schreibweise hinterlegt.
Aufbau dieser Nummer:
1. Feld INr11 bzw. INr21 numerisch 2-stellig
2. Feld INr12 bzw. INr22 numerisch 4-stellig
3. Feld INr13 bzw. INr23 numerisch 2-stellig
4. Feld INr14 bzw. INr24 numerisch 1-stellig
5. Feld INr15 bzw. INr25 numerisch 4-stellig
6. Feld INr16 bzw. INr26 numerisch 1-stellig
GNr (Tabelle Übersicht, Spalte N): 17-stellig, 7 Felder
Diese wird ebenfalls immer in der gleichen Schreibweise hinterlegt.
Aufbau dieser Nummer:
1. Feld GNr11 bzw. GNr21 nur Buchstaben 3-stellig
2. Feld GNr12 bzw. GNr22 alphanumerisch 3-stellig
3. Feld GNr13 bzw. GNr23 alphanumerisch 2-stellig
4. Feld GNr14 bzw. GNr24 numerisch 1-stellig
5. Feld GNr15 bzw. GNr25 numerisch 1-stellig
6. Feld GNr16 bzw. GNr26 Buchstabe 1-stellig
7. Feld GNr17 bzw. GNr27 numerisch 6-stellig
Eine InvNr ist immer eindeutig einer GNr zugeordnet , d.h. wird in der Filtermaske im Frame InvNr etwas eingegeben, soll der komplette Inhalt des Frames GNr nicht mehr editierbar sein bzw. umgekehrt..
Der Eintrag für die Nutzung von/bis soll überprüft werden, ob die zweite InvNr bzw. GNr größer ist, als die Erste. Falls nicht Messagebox mit Fehlermeldung.
Meist geben die Kollegen bei diesen Nummern nicht die komplette Nummer an. Für die InvNr erhält man meist als Angabe nur den Inhalt der Felder 3,4 und 5.
Bei der GNr den Inhalt der Felder 3,4,5,6,7 oder nur Feld 7 (bei Tagesaktualität)
Muss aber natürlich auch nach der vollständigen Nummer auswertbar sein. Ich weiß nicht, ob man ? als Platzhalter für die Suche einsetzen kann, wenn ein Felder nicht gefüllt sind. Es kommt natürlich auch vor, dass man nur nach einem Feld suchen muss, um die ganze Nummernfamilie, die in dieses Schema passt, auswerten zu können.
Wird die obere Nummer (Nr1) in einem Frame gefüllt, soll genau diese Nummer ausgewertet werden.
Werden beide Nummern im Frame gefüllt, gilt die Suche dem Nummernbereich inkl. der eingrenzenden Nummern (Nr1 und Nr2).
Bei Füllung der unteren Nummer (Nr2) im Frame soll nach allen Nummern kleiner gleich Nr2 ausgewertet werden.
Button "":
Durch Drücken dieses Buttons soll eine Liste der inaktiven Nummern angezeigt werden, die zu den aktiven ausgefüllten passt. Beispiel: INr13, INr14, INr15 gefüllt (aktiv), Button drücken und man erhält eine InfoBox mit den in Frage kommenden GNr (inaktiv) aus der Tabelle Übersicht und umgekehrt.
VNr (Tabelle Übersicht, Spalte Q): 11-stellig, 4 Felder
Dies ist eine Nummer, die unabhängig von InvNr und GNr ist. Durch mangelnde Diziplin einiger Kollegen kann hier die Schreibweise variieren.
Aufbau dieser Nummer:
1. Feld VNr1 alphanumerisch 3-stellig
2. Feld VNr2 numerisch 3-stellig
3. Feld VNr3 numerisch 3-stellig
4. Feld VNr4 nur Buchstaben 2-stellig
Schreibweisen:
Mit Leerzeichen VNr1 VNr2 VNr3 VNr4,
durch Punkte getrennt VNr1.VNr2.VNr3.VNr4,
zusammenhängend VNr1VNr2VNr3VNr4
Es soll auch möglich sein, nur nach VNr1, VNr2 oder VNr3, bzw. Kombinationen draus (z.B. VNr1 und VNr3) zu filtern, wenn diese Nummer nicht komplett in der FilterMaske gefüllt wird.
Freier Filter (Tabelle Übersicht, jede Spalte):
Hier soll es möglich sein, bestimmte Textpassagen in der Tabelle Übersicht zu finden. Idealerweise sollte der eingegebene Text automatisch am Anfang und Ende mit einem *-zeichen versehen werden. Beispiel: *pin*
Der Vollständigkeit halber sei abschließend erwähnt, dass für den Anwender kein Zwang besteht, diesen Filter einzusetzen, d.h. es wird der komplette Inhalt der Tabelle Übersicht in die Tabelle Gefilterte Daten kopiert
Ich hoffe Ihr habt es bis hier durchgehalten, dieses Monsterposting zu lesen und ich konnte mich verständlich ausdrücken. Stellt sich die Frage ist es wirklich so kompliziert, wie dieses Vorhaben meine Gedanken seit zwei Wochen strapaziert? Oder gibt es dafür eine einfache Lösung, auf die ich partout nicht stoßen will
In diesem Sinne, erstmal Danke fürs Durchhalten
Und vielen Dank im Voraus für eure Antworten/Lösungen
Vinz