ich brauche eure Hilfe ein vba Skript zu erstellen, da es mit Excelformeln zu kompliziert und langsam wird.
Ich habe eine Liste in Excel. Diese besteht in jeder Zelle aus Zeichen dem Gleichheitszeichen und wieder Zeichen. Ungefähr so:
Unterstrich=_{NDA}
gleichheitszeichen==
Gleichheitszeichen==
Und Zeichen= &
Und zeichnen= &&
...
Diese Liste enthält Unicode Zeichen; gerade auch Symbole jenseits der 64000 wie z.B. 🐀, 🐊, 🚼). Diese Liste muss jetzt sortiert und aufgeteilt werden anhand des Textes auf der linken Seite des Gleichheitszeichens. D.h. alles vor dem Gleichheitszeichen ist relevant für die folgenden Schritte:
1. Zellen in vba code einlesen und Reichenfolge merken damit diese hinterher wieder hergestellt werden kann
2. Im vba code die Zellen sortieren (CaseSensitive - auf Groß- und Kleinschreibung achtend.)
3. Alle doppelten linken Hälften (also alles vor dem Gleichheitszeichen) ersatzlos löschen
4. Aufteilen - Die "Guten" bleiben in der Ursprungsspalte die "Schlechten" gehen zusammen mit einem (1) Guten (diesen gibt es dann doppelt in beiden Spalten) in ein neues Tabellenblatt in die selbe Spalte wie die Guten auf ihrem Blatt.
Was ist Gut was ist Schlecht:
Gut ist alles wo nicht der Anfang der linke Hälfte (vor dem Gleichheitszeichen) der gesamten linken Hälfte einer anderen Zelle gleicht. Wobei immer nur ganze Wörter verglichen werden.
Beispiele:
bold underscore=_
Underscore short=_
underscored=_
Underscored=_
underscore thin=_
underscore long=_
underscore too long=_
My underscore too long=_
In diesem Beispiel ist alles OK. Kein Eintrag muss "Ausgemisted" werden. Egal welche gesamte Zelle (also nur vor dem Gleichheitszeichen) man mit dem ersten Wort oder den ersten Wörtern von anderen Zellen verglichen wird, gibt es nie etwas identisches.
underscore too=_
Underscore short=_
underscored=_
Underscored=_
underscore thin=_
underscore long=_
underscore too long=_
My underscore too long=_
In diesem Beispiel ist jedoch "underscore too" und "underscore too long" im Konflikt miteinander da beide Zellen mit "underscore too" anfangen (Im echten Beispiel können auch mal 10 Zellen so anfangen!). Daher sollen beide Zellen (diesmal vollständig inklusive rechter Seite vom Gleichheitszeichen) in das nächste Tabellenblatt kopiert werden. Im original Tabellenblatt wird der kürzeste Eintrag (in diesem Fall "underscore too" behalten und die anderen Zellen die im Konflikt dazu sind gelöscht. Die unteren Zellen, unterhalb der gelöschten Zelle, rücken dann nach oben auf. Die Original Liste ändert daher nicht ihre Reihenfolge.
Anbei eine Excel Tabelle die "fast" alle diese Aufgaben mit Formeln erledigt. Aber da die Datensammlung immer größer werden muss ich jetzt auf vba umsteigen.
https://www.herber.de/bbs/user/129935.xlsx
Ich hoffe Ihr könnte mir Helfen.
Vielen Dank für eure Hilfe.