komplexe Mehrfachabfrage
02.09.2008 11:43:00
Ankh
bin nun schon ein paar Tage am überlegen und vlt hat jemand ja eine Idee.
Es sind ca 20.000 Datensätze, welche in dieser Art bearbeitet werden müssten, von Hand dauert es ewig.
Von der reinen Logik her ist es recht einfach, nur leider sind meine Kenntnisse in VBA eher dürftig
Habe ein paar Spalten die Zeichenlimit haben müssen, zugleich Bedingungen zueinander.
Manchmal nur simplen Eintrag, beim anderen eine komplexere Aufteilung.
in Zeile 1 Befinden sich die ganzen Überschriften, also müssten die ganzen Bedingungen ab Zeile 2 wirken.
Spalte G darf maximal 50 zeichen pro Zelle haben, der Übertrag muss in die darunter liegende Zelle eingetragen werden.
Jedoch muss dabei zugleich abgefragt werden ob in den Zellen der Spalten B oder D ein Eintrag vorhanden ist, ist dies der Fall muss erst eine leere Zeile eingefügt werden.
Auch sollte die Trennung der Zelle nicht wahllos von statten gehen, sondern vor einem Leerzeichen, wenn vorhanden. Wenn keins vorhanden eben einfach nach genau 50 Zeichen.
Beispiel: Zelle G3 hat Inhalt "Was auch immer man sich vorstellen kann, könnte am 31.12.2008 eintreffen"
Das sind 71 Zeichen.
Hier sind die 50 Zeichen genau nach dem "am" erreicht.
Also müsste "31.12.2008 eintreffen" nach G4 übertragen werden.
Entweder einfach in die vorhandene Zeile oder, wenn B4 bzw. D4 einen Eintrag haben, in eine nun einzufügende, leere Zeile. Wodurch die zuvorige Zeile 4 zu 5 wird.
Danach genau die gleiche Abfrage noch einmal, aber statt Spalte G für Spalte H.
Wenn dies geschehen ist, die gleiche Abfrage aber mit 27 Zeichen Begrenzung jeweils für die Spalten I und J.
[kA, wie man diese verschachtelung schreiben müsste alleine oO]
Nun folgt das nächste Problem.
In der Spalte AJ müssen alle Leerzeichen und Kommas entfernt werden, ist dies geschehen, muss geprüft werden ob leer, 2 zeichen oder mehr zeichen.
Bei leerer Zelle oder 2 Zeichen passiert nichts, sind es jedoch mehr Zeichen , müsste eine neue Abfrage erfolgen:
Wenn die Spalten B und D in der entsprechenden Zeile leer, darf einfach eingetragen werden, ist jedoch eine oder beide Zellen gefüllt, müsste eine leere Zeile eingefügt werden. Und die mehrzeichen übertragen werden.
Beispiel: CH, AT, DE, HU steht in Zelle AJ2
müsste erst zu CHATDEHU und danach übertragen werden in die richtigen Zellen
damit würde AJ2 CH, AJ3 AT, AJ4 DE, AJ5 HU stehen.
Nun zum letzten Problem, wenn die Zeilen nicht leer sind, also irgendwo auch nur ein Eintrag vorhanden, müssten in die entsprechenden Zellen der Spalten K, M und AI 1,2 und 3 eingetragen werden.
Von der reinen Logik ist es recht einfach, aber leider habe ich keine Ahnung wie ich das in VBA schreiben kann :)
Freund meinte ist sehr einfach, aber als ich fragte ob er es mir zeigt kam nichts mehr, also scheint es doch nicht so einfach zu sein.
Tips und Hilfe ist absolut willkommen, wenn jeman das lösen kann, noch besser.
Aber dann bitte mit Kommentierung, weil würde gerne verstehen wie was passiert um daraus lernen zu können.
Vielen Dank schon einmal im voraus