Suchen im Bereich e. Tabelle anhand e. Teilinhalts d. Zellen u. Ausgabe als csv-Datei
#1
Hallo Zusammen, momentan habe ich ein Problem zu lösen, dass mit einer Suche, vermutlich unter Nutzung von VBA, zu tun hat. Und VBA ist mir fremd, deshalb bitte ich hier um Hilfe.
Zur Verdeutlichung der Zusammenhänge habe ich eine Datei angehängt, auf die meine nun folgende Beschreibung Bezug nimmt.

Das Problem/ die Aufgabe:
Zu einer Gruppe von Personen, die in mehreren Gremien unterschiedliche Funktionen haben, möchte ich im gesamten Feld F3 bis K32 suchen nach jedem einzelnen der Kriterien von B35 bis B39. Außerordentlich wäre es – ist aber nicht zwingend - nach Kombinationen aus den Kriterien suchen zu können.
Dabei soll die Suche möglichst so stattfinden, dass die Daten der Basistabell nicht gefährdet sind. Vielleicht ist es sogar möglich, dass die Basis-Tabelle nicht geöffnet wird, was m. E. der beste Schutz wäre.
 
 
Was soll bei der Suche ausgegeben werden?
Ausgegeben werden sollen durch die Suche in einer csv-Datei Nachname, Titel, Vorname, Bezeichnung des Ausschusses, Funktion gem. dem gewählten Kriterium aus D35 bis D39. Sollte eine Kombination von Kriterien mögliche sein, soll das Resultat der Suche ausgegeben werden entsprechend der Reihenfolge in D35 bis D39. Also beispielsweise alle „1svo“ vor „2vo“, gefolgt von „vedp“.

Ein Beispiel:
Gesucht werden die Vorsitzenden aller Ausschüsse. Also Suche nach „vors“.
 
Ergebnis als csv-Datei:
Damer,Dr.,Hartwig,Ausschuss A,Vorsitzender/r
Barnow,,Friedrich,Ausschuss B,Vorsitzender/r
Ostrowski,,Reinhard,Ausschuss C,Vorsitzender/r
Fogt,,Ann-Kathrin,Ausschuss D,Vorsitzende/r
Urmel,,Martin,Ausschuss E,Vorsitzende/r
Hartwig,,Kai,Ausschuss F,Vorsitzende/r


Angehängte Dateien
.xlsx   Stammdaten_filterbar_anonymisiert.xlsx (Größe: 13,33 KB / Downloads: 15)
Antworten Top
#2
Bin mir zwar nicht sicher ob ich Ihr Anliegen richtig verstanden habe, doch nichtdestodrotz hier ein Ansatz in der eingefügten Datei.

Test Datei:
.xlsm   Stammdaten_filterbar_in_csv.xlsm (Größe: 25,01 KB / Downloads: 8)
 
Hoffe das es Ihnen weiterhilft in Ihren vorhaben.
[-] Folgende(r) 1 Nutzer sagt Danke an Niko für diesen Beitrag:
  • Lothar2202
Antworten Top
#3
Hallo Nico, herzlichen Dank für die Datei. 
Und, ja das Thema hast du richtig verstanden, sodass der Ansatz funktioniert. Natürlich kannst du aus meiner eher kurzen Beschreibung des Inhalts der csv-Datei nicht alles erahnen. Hier hätte ich vermutlich ausführlicher beschreiben sollen.
Sehr gern würde ich das Ganz mit deinen Kenntnissen zu einem perfekten Abschluss führen wollen. Doch dazu später.
Erst mal zum Hintergrund der Sache
Verwaltet werden ca. 250 Bürger, die in knapp 20 Ausschüssen in unterschiedlichen Positionen als gewählte Bürgerdeputierte in differenzierten Funktionen wirken. Für diese Tätigkeit gibt es in Abhängigkeit von der Funktion schmale, aber leider unterschiedliche Sitzungsgelder. Übers Jahr gesehen kommt dennoch eine erhebliche Summe für alle Ausschüsse zusammen. Und diese Summe muss angesichts der knappen Berliner Kassen ziemlich genau kalkuliert werden. Benötigt werden also Personenmengen, differenziert nach Funktion sowie die Anzahl der Sitzungen der Ausschüsse. Die Tabelle dient also zum einen kalkulatorischen Zwecken und zum anderen müssen namentliche Listen erstellt werden, die sowohl die Funktion als auch den Ausschuss der Deputierten benennen.
Mein Verständnis deines Makros:
Ich könnte im gesamten Datenfeld nach nur einer Funktion der Deputierten suchen, wenn ich im Makro an der Stelle
Set suchkriterien = ws.Range("B35:B39") statt ("B35:B39") nur ("B36") schreibe, und auf diese Weise alle >1svo<, also >1. Stellvertreter d. Vorsitzenden<, ermittle. Das Steuerelement dazu benenne ich als >1. Stellv. Exportieren<.
So würde ich für jedes der fünf Kriterien ein angepasstes Makro anlegen – allerdings weiß ich nicht, ob diese Trennung überhaupt geht – und fünf adäquate Steuerelemente basteln.
Meine Frage dazu: geht das so?
Und damit bin ich beim zweiten Teil meiner Antwort an dich angekommen: Hast du noch Lust, den Inhalt der ausgegeben Datenzeilen zu "verschönern"?
Danke nochmals für deine Hilfe bis zu dieser Stelle, herzliche Grüße aus dem Berliner Norden (Buch), Lothar
(im Anhang ist der komplette Brief an dich.....)


Angehängte Dateien
.pdf   Text an Nico.pdf (Größe: 129,15 KB / Downloads: 6)
Antworten Top
#4
Confused 
Hallo Nico, leider hatte ich mich im angehängten Schreiben nicht qualifiziert genug ausgedrückt.
Zur Korrektur wollte ich den Anhang auswechseln; das geht aber nur innerhalb von 60 Minuten nach Veröffentlichung.
Also musste ich den korrigierten Anhang hier veröffentlichen.

Herzliche Grüße, Lothar


Angehängte Dateien
.pdf   Text an Nico_präzisierte-Version_2024-07-20_19Uhr.pdf (Größe: 130,11 KB / Downloads: 5)
Antworten Top
#5
Hallo Lothar,

ich habe auch ein Makro, das aber einen anderen Weg geht. Mein Makro erzeugt eine aufbereitete Liste in einem "neuen" Tabellenblatt (wird hinzugefügt). Dieses Tabellenblatt kannst du dann nach Wunsch als *txt oder *.csv abspeichern.

Du brauchst lediglich den Datenbereich (inkl. Überschrift) im Bsp. "B2:K32" mit der Maus markieren und das Makro starten. (Wozu brauchst du die Zeile 1 (a, b, c etc), sie ist doch überflüssig.) Im Makro wirst du nach dem "Suchkriterium" gefragt.

(s. Mappe)

Gruß Sigi


Angehängte Dateien
.xlsm   Liste für csv.xlsm (Größe: 22 KB / Downloads: 2)
[-] Folgende(r) 1 Nutzer sagt Danke an Sigi.21 für diesen Beitrag:
  • Lothar2202
Antworten Top
#6
...eigentlich braucht es kein VBA, es sei denn, man scheut sich vor den paar Mausklicken um die Ergebnistabelle als PDF zu speichern. In diesem Fall kann man das natürlich immer noch als Makro aufzeichnen...  21

Ansonsten transformiert man sich eine entsprechende Datenbasis mittels PQ Abfrage und generiert daraus eine Pivottable, die man nach allen möglichen Wünschen filtern kann... (wer es noch bequemer will, kann sich auch noch Slicer einbauen)


Angehängte Dateien
.xlsx   Stammdaten_filterbar_anonymisiert (1).xlsx (Größe: 194,48 KB / Downloads: 7)
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

[-] Folgende(r) 1 Nutzer sagt Danke an Ralf A für diesen Beitrag:
  • Lothar2202
Antworten Top
#7
Moin Lothar,

es hat zwar n bisschen gedauert, aber auch ich wollt dir meine Idee vorschlagen Smile

Erst mal n paar Infos:

1)
Deine kleine Kürzel-Tabelle beginnt nun in Zeile 38, nicht mehr in 35.
Grund:
Du willst zwar nach einzelnen Kriterien, am liebsten auch in Kombination aus mehreren Kriterien deine Suche starten + Ergebnisse in CSV-Datei speichern, aber......
....du hast gar nix darüber erzählt, wie/wo genau nach deinen "Wunsch"Kriterien gefiltert werden soll.

Deshalb hab ich zwischen deiner Haupt- und Kürzel-Tabelle einige Zeilen hinzugefügt.
- in Zeile 34 habe ich 3 Zellen mit der Auswahlmöglichkeit aus den Kriterien vorbelegt (Datengültigkeitsliste)
- unterhalb von Zeile 34 hab ich einen Button hinzugefügt, mit dessen Klick die Suche/Auswahl/CSV-Speichern gestartet wird...wenn...du denn zuvor mind. in der ersten der 3 farbigen Zellen eine Auswahl getroffen hast

2)
"... dass die Daten der Basistabell nicht gefährdet sind. Vielleicht ist es sogar möglich, dass die Basis-Tabelle nicht geöffnet wird..."

a) mit/wegen meines VBA-Codes werden deine Basis-Daten nicht gefährdet; die Daten werden aus deiner Basis-Tabelle nur ausgelesen, es werden aber keine Daten verändert
b) ähh?? Wie kann ich denn Käse aus'm Kühlschrank rausnehmen, wenn ich den Kühlschrank nicht öffnen darf^^?!? Smile
So ähnlich verhält es sich auch mit deiner Datei = wenn nicht öffnen, dann Auslesen fast nich möglich.

Ja, ok, ich schreibe " ähnlich" und "fast" = doch, auch das Auslesen aus Excel-Dateien ist möglich - ohne - diese öffnen zu müssen, aber dieser Vorgang ist so schwierig (für mich), dass zumindest ich keine Lust habe, mich daran zu probieren.

3)
Dein Wunschziel sind zwar CSV-Dateien, aber du verrätst uns nich, unter welchen Dateinamen diese gespeichert werden sollen.
Gelöst hab ich dies, in dem der CSV-Dateiname aus den Einträgen der Zellen C34, D34 und/oder E34 erstellt wird.

wurde in C34 "vors" ausgewählt = Dateiname = "vors.csv"
wurde zusätzlich in D34 "ordp" ausgewählt = Dateiname = "vors, ordp.csv"

Alle CSV-Dateien werden im selben Verzeichnis gespeichert, in dem sich auch deine, bzw meine für dich erstellte Excel-Datei befindet.



Sooo, genug der Vorreden Smile

Versuch es mal mit meiner Datei im Anhang.

2 Beispiele:

a) Wähl in Zelle C34 den Eintrag "vors" aus und klick auf den Button

diese Werte werden in der Datei "vors.csv" gespeichert
gefunden = 6 Personen in 6 Datenzeilen

Barnow;;Friedrich;"Ausschuss
B";Vorsitzende/r
Damer;Dr.;Hartwig;"Ausschuss
A";Vorsitzende/r
Fogt;Dr. ;Ann-Kathrin;"Ausschuss
D";Vorsitzende/r
Hartwig;;Kai;"Ausschuss
F";Vorsitzende/r
Ostrowski;;Reinhard;"Ausschuss
C";Vorsitzende/r
Urmel;;Martin;"Ausschuss
E";Vorsitzende/r

b) wähl zusätzlich in Zelle D34 den Eintrag "ordp" aus und klick auf den Button

diese Werte werden in der Datei "vors,ordp.csv" gespeichert
gefunden = 2 Personen in 4 Datenzeilen

Damer;Dr.;Hartwig;"Ausschuss
A";Vorsitzende/r
Damer;Dr.;Hartwig;"Ausschuss
A";ordentl. Bürgerdeputierter (BüDep)
Urmel;;Martin;"Ausschuss
E";Vorsitzende/r
Urmel;;Martin;"Ausschuss
E";ordentl. Bürgerdeputierter (BüDep)

Du hast vllt bemerkt, dass in jeder Zeile nach "Ausschuss" ein Zeilenumbruch erfolgt.

Grund:
Du hast in der Basistabelle, in der Überschriftenzeile (Zeile 2) die Einträge für "Ausschuss..." sehr unglücklich platziert, denn schon in den Zellen gibt es den Zeilenumbruch.
Aber für mich nich schlimm, denn das zu lösen, war ja keine deiner Aufgaben! Smile

Konnte ich helfen?

Ciao
Thorsten


Angehängte Dateien
.xlsm   Stammdaten_filterbar_anonymisiert.xlsm (Größe: 32,79 KB / Downloads: 8)
[-] Folgende(r) 1 Nutzer sagt Danke an Oberschlumpf für diesen Beitrag:
  • Lothar2202
Antworten Top
#8
Heart 
Überwältigt sein, ist nicht das richtige Wort für die vier Hilfestellungen, mir fällt aber leider kein treffenderes ein.
Deshalb,
Lieber Nico, lieber Ralf, lieber Sigi und lieber Thorsten,
herzlichen Dank für die schnelle und sachgerechte Hilfe, die ich von jedem erfahren durfte.
Ich wandte mich erstmalig in meinem Arbeitsleben (bin jetzt 73) an die Experten in einem Forum und bin total überrascht, wie nützlich und zielgerichtet so ein Forum funktionieren kann. Oder anders gesagt, hätte ich diese Erfahrung früher gemacht, wäre mancher Sress vermeidbar gewesen. Gefehlt hätte allerdings auch der Stolz auf eine erzielte Lösung.
Und nun beim Wort "Lösung" zu euch. Jede Lösung hat für mich einen Nutzen. 
Nico hat den Code kommentiert, was mir bei der Transformation auf die reale Tabelle mit 300 Personen, 22 Ausschüssen und 11 Funktionen unter seiner weiteren Anleitung helfen wird. Die Lösung von Ralf mittels Pivottabelle ist perfekt für Anfragen der Verwaltung, da diese in der Regel nur Zahlen benötigt. Bei der Lösung von Sigi spürt man noch den unmittelbaren Zugriff auf die Daten und somit ggf. Erweiterungsoptionen, denn das Informationsbedürfnis zu den Ausschüssen ist in seiner Vielfältigkeit nicht abschätzbar. Und der Ansatz von Thorsten ist gut ausgebaut hinsichtlich der "Weitergabe" der Lösung an andere Kollegen, denn hier sind Optionen an Eingabefelder und einen Befehlsbutton gebunden.
Summa summarum, jeder Ansatz (halt, der von Ralf nicht) könnte/sollte/müsste weiter ausgebaut werden. Ich kann mich aber nicht für einen entscheiden, weil ich nicht weiß, ob solches Ausbauen eines Ansatzes üblich ist, und wer von euch überhaupt Zeit und Interesse an einer Fortsetzung hat. Außerdem denke ich, dass der Prozess des Ausbauens aus Platzgründen nicht hier im Forum dokumentiert werden sollte; das Resultat natürlich für andere Interessenten. Ich denke, der Ausbau sollte über E-Mail (rehle.berlin et web.de) kommuniziert werden.
Könnte ich es mir aussuchen, würde ich Ralf bei Bedarf gern konsultieren wollen und mit Thorsten die Anpassung (mehr Personen, Ausschüsse und Funktionen; Erweiterung-/Anpassungs-Möglichkeit vorhalten; möglichst viele Kommentare im Code) an die reale Datei praktizieren. Zugleich hoffe ich, dass Nico und Sigi nicht verstimmt sind wegen meiner Priorisierung.
Soweit erst einmal. Ich wünsche allen einen trotz der Hitze erträglichen Sonntag und verbleibe mit dankbaren Grüßen, Lothar
Antworten Top
#9
Hi Lothar,

erst mal danke für dein danke Smile ...freut mich, dass auch ich helfen konnte.

Und natürlich "Herzlich Willkommen" in deinem 1. Forum.

Diesbzgl. hast du aber, so glaube ich, ein wenig missverstanden.

1a) "Ich denke, der Ausbau sollte über E-Mail (...) kommuniziert werden."

Da denkst du...falsch Smile ...so zumindest meine Meinung.
Denn ein Forum besteht ja aus sehr vielen Hilfsbereiten.
Und die Summe aus sehr vielen = Schwarmwissen!

Wenn wir jetzt wirklich so weitermachen würden, wie du es dir vorstellst, dann würden alle "weiteren Aufgaben" an Ralf und an mir hängenbleiben, was ja doof wäre, weil du dann automatisch auf das Schwarmwissen all der anderen, möglichen Antworter verzichtest.

1b) die Gedanken aus 1a) weitergesponnen, ergeben, dass du Ralf + mich beauftragen würdest.
Dafür gibt es aber...Auftragsprogrammierer...denen du deine Wünsche zukommen lassen könntest - und die würden dann mit deinem Auftrag auch Geld verdienen.
Mindestens bei mir ginge das nicht, weil ich nicht mit Programmieren Geld verdiene.

Außerdem ist ein Forum ja genau für so etwas da:
- jemand hat eine Frage zu einem Problem, das er noch nicht selbst lösen kann, sich aber trotzdem daran versucht hat
- dieser jemand stellt Bsp-Datei(en) und seine bisherigen Versuche dem Forum zur Verfügung
- einige bis viele Antworter reagieren dann im besten Fall mit einer Lösung, die gratis gezeigt wird
- alle freuen sich Smile

2) daher mein Vorschlag:
Stell weiterhin hier all deine Fragen.
Und sollte es in ein und demselben Beitrag wirklich mal zu viel werden (Zitat " ob solches Ausbauen eines Ansatzes üblich ist, "), dannnn.......erstell doch einfach einen neuen Beitrag! Wink

So, von mir war's das...erst mal.

Ciao
Thorsten
[-] Folgende(r) 1 Nutzer sagt Danke an Oberschlumpf für diesen Beitrag:
  • Lothar2202
Antworten Top
#10
(21.07.2024, 11:20)Lothar2202 schrieb: 1. Summa summarum, jeder Ansatz (...) könnte/sollte/müsste weiter ausgebaut werden. ...
2. Ich denke, der Ausbau sollte über E-Mail (xxxxx@xxx) kommuniziert werden.
3. Könnte ich es mir aussuchen, würde ich Ralf bei Bedarf gern konsultieren wollen und mit Thorsten die Anpassung (mehr Personen, Ausschüsse und Funktionen; Erweiterung-/Anpassungs-Möglichkeit vorhalten; möglichst viele Kommentare im Code) an die reale Datei praktizieren. 

Zu 1. Ok... hatte ich übersehen, dass die Kürzel in Klarnamen ausgegeben werden sollen. Ist im Anhang geändert.
Zu 2. Du solltest hier keine Realnamen/-adressen veröffentlichen. 
Zu 3. Wenn Du schon eine private Kontaktaufnahme wünschst, dann kannst Du hier Privatnachrichten versenden. Prinzipiell muss ich @Oberschlumpf aber zustimmen. Privatnachrichten sind halt nur dann sinnvoll, wenn Du einen offiziellen, kommerziellen Auftrag erteilen willst. Ansonsten werden die Anfragen (auch weiterführende) direkt im Forum geklärt.

Zum Anhang:
  • Wie bereits erwähnt, Kürzel werden jetzt als Klartext ausgegeben.
  • Wenn in der Kürzeltabelle ein Kürzel verwendet wird, dann muss in der Spalte für die Funktionen auch ein Wert angegeben werden. In Deiner Kürzeltabelle fehlt für Mitglieder eine Funktionsbeschreibung. Das würde zu einem Fehler führen. In meiner Kürzeltabelle hab ich das korrigiert.
  • Mitglieder-, Kürzel- sowie alle anderen Bezugstabellen sollten auf jeweils separaten Tabellenblättern erstellt werden. Unter- oder nebeneinander sind meist ungünstig.
  • Bei Bauerfeind Uta, Ausschuss D weicht die übliche Funktionsschreibweise von allen anderen ab (d-1svo statt 1svo-d). Auch das führt zu einem Fehler, weil d-1svo nicht als Kürzel gefunden werden kann. In der Pivot wird darauf hingewiesen.
  • Die Mitglieder und Kürzeltabellen können beliebig erweitert werden. Zwingend ist jedoch, dass die Struktur unverändert bleibt.
  • Im Beispiel hab ich mal eine Pivot gruppiert nach Namen und eine gruppiert nach Funktionen eingebaut. In der Praxis ist das jedoch so nicht nötig, weil man die Pivotfelder immer nach seinen jeweiligen Bedürfnissen anpassen kann. In diesem Fall dient das also nur der Demonstration der Flexibilität.


Angehängte Dateien
.xlsx   Stammdaten_filterbar_anonymisiert (1).xlsx (Größe: 253,28 KB / Downloads: 3)
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

[-] Folgende(r) 1 Nutzer sagt Danke an Ralf A für diesen Beitrag:
  • Lothar2202
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste