20.07.2021, 00:30
Moin Leute,
ich versuche mein Problem mal so kurz und präzise wie möglich darzustellen und füge auch eine komplett anonymisierte (alle Nummern und IDs sind fiktiv) Beispieldatei an:
Ausgangslage:
Eine veraltete Vereinssoftware muss komplett ausgetauscht werden.
Dazu wurde ein Datenexport der Mitglieder durchgeführt und dieser soll zunächst in Excel von mir wieder aufbereitet werden.
Nach dem Import kommen in Excel die drei Spalten „Name“, „Kontaktdaten / Schrank ID“ und „Sparte“ an. So weit so gut!
Problemstellung:
- die Ausgangsdaten in der Spalte B „Kontaktdaten / Schrank ID“ sind extrem unterschiedlich, durcheinander und auch teilweise im Zeilenumbruch
- erschwerend kommt hinzu, dass manche Mitglieder auch Spartenübergreifend gespeichert waren, so dass sie teilweise doppelt oder dreifach auftauchen.
Ich habe es auch schon mit aufgenommenen Makros und Excel-Textfiltern in mehreren hintereinander geschalteten Schritten versucht, aber das ist alles derart umständlich und führte letztlich auch nicht zum Erfolg.
Ziel:
(siehe Registerkarte „Ziel“ / diese ist manuell als Beispiel erstellt worden)
Ich benötige lediglich in einer separaten Registerkarte eine filterbare Liste der Mitglieder (Spalte A), ihren Rufnummern -im internationalen Standard ohne führende Null- (Spalte B) und der dazugehörigen Sparte (Spalte C). Alle anderen Informationen der Ausgangs-Daten (Schrank-ID, Email, etc. sind hierfür irrelevant und zu löschen).
- die Mitgliederzahl muss dabei nach unten unbegrenzt bleiben, da es ja idealerweise immer mehr werden, die ich nachträglich einfügen können muss.
- es sollen komplette Doppeleinträge gelöscht werden (wenn Name, Nummer und Sparte als Zeile identisch sind). ABER: die Mitglieder können mehrfach auftauchen, wenn sie z.B. mit der gleichen Nummer aber in versch. Sparten geführt werden (z.B. bei dem Mitglied Heinz L. Mann). Oder wenn sie mit verschiedenen Nummern in der gleichen Sparte geführt werden (z.B. bei dem Mitglied Claire Grube).
Frage an die Runde:
Kann mir jemand mit einem VBA-Code aushelfen, der möglichst alle Schritte vereint und den ich so nachvollziehen kann, dass ich daraus noch einen Lerneffekt erziele? ?
Wie gesagt, mit einzelnen VBA-Befehlen (z.B. Split, Suchen, Links, Rechts, Teil, etc…) könnte ich auch umgehen, aber noch nicht in dieser speziellen Komplexität.
Vielleicht kommen wir hier ja auch mit mehreren Leuten und vielen helfenden Gedanken irgendwie zusammen zum Ziel…
Viele Grüße
Micha
P.S.:
- an den Ausgangs-Daten des alten Programms ist nichts mehr zu ändern! Die muss ich als Basis leider so hinnehmen…
- kein Cross-Post
ich versuche mein Problem mal so kurz und präzise wie möglich darzustellen und füge auch eine komplett anonymisierte (alle Nummern und IDs sind fiktiv) Beispieldatei an:
Ausgangslage:
Eine veraltete Vereinssoftware muss komplett ausgetauscht werden.
Dazu wurde ein Datenexport der Mitglieder durchgeführt und dieser soll zunächst in Excel von mir wieder aufbereitet werden.
Nach dem Import kommen in Excel die drei Spalten „Name“, „Kontaktdaten / Schrank ID“ und „Sparte“ an. So weit so gut!
Problemstellung:
- die Ausgangsdaten in der Spalte B „Kontaktdaten / Schrank ID“ sind extrem unterschiedlich, durcheinander und auch teilweise im Zeilenumbruch
- erschwerend kommt hinzu, dass manche Mitglieder auch Spartenübergreifend gespeichert waren, so dass sie teilweise doppelt oder dreifach auftauchen.
Ich habe es auch schon mit aufgenommenen Makros und Excel-Textfiltern in mehreren hintereinander geschalteten Schritten versucht, aber das ist alles derart umständlich und führte letztlich auch nicht zum Erfolg.
Ziel:
(siehe Registerkarte „Ziel“ / diese ist manuell als Beispiel erstellt worden)
Ich benötige lediglich in einer separaten Registerkarte eine filterbare Liste der Mitglieder (Spalte A), ihren Rufnummern -im internationalen Standard ohne führende Null- (Spalte B) und der dazugehörigen Sparte (Spalte C). Alle anderen Informationen der Ausgangs-Daten (Schrank-ID, Email, etc. sind hierfür irrelevant und zu löschen).
- die Mitgliederzahl muss dabei nach unten unbegrenzt bleiben, da es ja idealerweise immer mehr werden, die ich nachträglich einfügen können muss.
- es sollen komplette Doppeleinträge gelöscht werden (wenn Name, Nummer und Sparte als Zeile identisch sind). ABER: die Mitglieder können mehrfach auftauchen, wenn sie z.B. mit der gleichen Nummer aber in versch. Sparten geführt werden (z.B. bei dem Mitglied Heinz L. Mann). Oder wenn sie mit verschiedenen Nummern in der gleichen Sparte geführt werden (z.B. bei dem Mitglied Claire Grube).
Frage an die Runde:
Kann mir jemand mit einem VBA-Code aushelfen, der möglichst alle Schritte vereint und den ich so nachvollziehen kann, dass ich daraus noch einen Lerneffekt erziele? ?
Wie gesagt, mit einzelnen VBA-Befehlen (z.B. Split, Suchen, Links, Rechts, Teil, etc…) könnte ich auch umgehen, aber noch nicht in dieser speziellen Komplexität.
Vielleicht kommen wir hier ja auch mit mehreren Leuten und vielen helfenden Gedanken irgendwie zusammen zum Ziel…

Viele Grüße
Micha
P.S.:
- an den Ausgangs-Daten des alten Programms ist nichts mehr zu ändern! Die muss ich als Basis leider so hinnehmen…
- kein Cross-Post
