Benutzereingabe mittels vorgegebener Liste einfordern
Hallo Zusammen,
ich habe eine Datei mit vielen Spalten und zigtausend Zeilen. Diese möchte ich gerne per Makro in die einzelnen Länder zerlegen, die in einer der Spalten stehen. Momentan bin ich soweit, daß ich zur Eingabe des Landes auffordern kann, worauf dann der Filter gesetzt wird usw. Läuft prima. Ich hätte aber gerne noch zwei Dinge geändert:
1.] Ich würde die Benutzereingabe gerne nicht per freier Eingabe in die InputBox abrufen, sondern dem Benutzer die möglichen Länder (die ja alle in der Tabelle in einer bestimmten Spalte stehen) zur Auswahl vorblenden. Ansonsten hat man immer das Problem nicht zu wissen, wie das Land in der Datei heißt (z.B. England oder UK oder Great Britain usw.)
2. ...und das überschreitet meine learning-by-doing-Kenntnisse: Es wäre die Krönung, wenn ich vorher fragen könnte, ob der User überhaupt ein spezielles Land will oder die Datei komplett in die verschiedenen Länder zerlegt werden soll UND das Makro dieses dann auch selbstständig macht! Ich habe schon raus, wie ich den Filter setze, die gefilterten Daten in eine neue Datei kopiere und unter dem Namen des gerade gesetzten Filters speichere. Aber wie sage ich dem Makro, es soll genau das für alle in Spalte E vorkommenden Länder machen?
Ich wäre aber schon dankbar für eine Lösung meines Problems Nr. 1, ich fürchte mit 2, wäre ich eh überfordert...*augenverdreh
Vielen Dank und ebensolche Grüße,
Jungdra
Antwort schreiben
Antwort 1 von Flupo vom 31.05.2019, 14:31 Options
Wär es hier nicht am Einfachsten mit AutoFiltern (Menü "Daten", "Filter", "AutoFilter" zu arbeiten?
Damit erhältst du die gewünschte Auswahlmöglichkeit, man kann per benutzerdefinierter Filterung auch mehrere Länder auf einmal sehen.
Das Makro, um die gefilterten Daten dann in eine neue Datei zu kopieren, dürfte auch nicht mehr allzu schwierig sein.
Gruß Flupo
Antwort 2 von Jungdra vom 31.05.2019, 15:02 Options
@Flupo: Na klar, mache ich doch auch, aber mein Problem ist es, das Ganze innerhalb eines Makros zu bewerkstelligen. Wie soll ich das nur erklären? Ich habe 1e große Datei mit X Ländern und daraus möchte ich jetzt eben X Dateien automatisch erstellen lassen. Ich habe es soweit, daß man vom Makro aufgefordert wird das Land einzugeben (z.B. China) und dann wird der auf China gefilterte Auszug der 1en großen Datei in eine neue Datei namens "China 200705.xls" gespeichert.
ABER: Erstens muß man das Land in eine InputBox EINTIPPEN (d.h. ich möchte hier sozusagen die Inhalte der Autofilterliste dieser Länderspalte zum Anklicken vorgegeben bekommen) und zweitens: Wenn das Makro abgelaufen ist muß man es neu starten und das nächste Land eingeben usw. usw., bis man jedes Land eingetippert hat. Es wäre wünschenswert, wenn das Makro folgendes tun würde (ich kann das aber nur in Worten ausdrücken, nicht in Makrosprache):
1. Frage nach, ob ein einzelnes Land aufgerufen oder die komplette Liste in Einzelländer zerlegt werden soll.
2. Falls Einzeln: Blende Anklickliste wie oben beschrieben vor, übernehme angeklicktes Land in die Variable "Benutzereingabe" und gehe dann Makro weiter durch bis Ende.
3. Falls komplette Liste: Baue Dir intern eine Liste aus allen vorkommenden Ländern der Spalte G ohne Duplikate.
4. Nehme den ersten Eintrag dieser Liste, setze ihn in die Variable "Benutzereingabe" und laufe dann das Makro weiter durch bis Ende und setze dann wieder bei 4. auf und nehme Dir den zweiten Eintrag dieser Liste usw. und so fort bis kein weiterer Eintrag in der Liste mehr folgt. Dann Ende.
Kann man so verstehen, was ich eigentlich will?
Viele Grüße,
Jungdra
Antwort 3 von Jungdra vom 05.06.2019, 10:43 Options
Buhuuuu, kann mir echt keiner hierbei helfen? Zumindest bei der Frage, wie ich mittels Makro eine Auswahlliste anstatt eines Eingabefeldes aufpoppen lassen kann?
Viele Grüße,
Jungdra