Suchen im Bereich e. Tabelle anhand e. Teilinhalts d. Zellen u. Ausgabe als csv-Datei
#21
Hi Lothar,

ja, deinen 1. Eintrag mit "... Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht festgelegt. ..." hatte ich schon gesehen - und - schon beseitigt Wink
Deinen Ansatz zu b2) könnte ich ja nur dann entsprechend in der Programmierung anpassen, wenn ich denn die - neue Datei MIT dem neuen Tabellenblatt - sehen würde.

Seh ich aber noch nicht...woran liegt das wohl?! Tongue

Ciao erst mal
Thorsten
Antworten Top
#22
Zitat:Leider finde ich keinen Weg, diese Setzung eines "Alias" so aufzuheben, dass ich beispielsweise "Ausschuss A" ändern kann in "Ausschuss Ältestenrat", und das in den Auswertungen auch so angezeigt wird.

Das machst Du im M-Code in dieser Zeile:

PHP-Code:
#"Umbenannte Spalten" = Table.RenameColumns(Bereinigen,{{"Ausschuss A", "A"}, {"Ausschuss B", "B"}, {"Ausschuss C", "C"}, {"Ausschuss D", "D"}, {"Ausschuss E", "E"}, {"Ausschuss F", "F"}}), 

Hier wird Ausschuss A in A geändert Ausschuss B in B usw. Also die kommasepararierten Paare in den { } entsprechend anpassen. Wobei ich das Prefix Ausschuss immer weglassen würde (null Informationsgewinn). Ausschüsse sind sie ja alle. Interessant ist doch nur, um welchen es konkret geht...
Wenn keine Umbennennung erforderlich ist, kann diese Zeile auch gelöscht werden. Wenn Du das direkt im erweiterten Editor machst, musst Du allerdings in der nächsten Zeile den Bezug zur vorhergehenden Anweisung entsprechend anpassen. Deshalb ist es besser im Fenster "Angewandte Schritte" den Schritt Umbenannte Spalten direkt zu löschen. Dann erfolgt die Aktualisierung automatisch.
Wie Du an den M-Code kommst, weißt Du? Falls nicht: Menü Daten --> Abfragen und Verbindungen und dann Doppelklick auf tblMember. Zur Ansicht des ganzen Codes: Menü Start --> Erweiterter Editor, ansonsten sh. Fenster Angewandte Schritte
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
#23
Hi Lothar,

ich denke, ich hab den CSV-Teil erledigen können.
(Ausnahme: dein extra-Blatt, deren Zellen gefüllt werden über die Ist-Gleich-Funktion "=Tabelle1!A1". Denn du hattest ja bis jetzt nicht die gewünschte, neue Bsp-Datei per Upload gezeigt. Aber das wirst du anpassen können, denke ich)

So, zu meiner Datei, bzw zu den wichtigsten deiner Hinweise von mir noch n paar Infos.


1) Du: soll das Resultat der Suche ausgegeben werden entsprechend der Reihenfolge ... Also beispielsweise alle „1svo“ vor „2vo“, gefolgt von „vedp“.

Ja, jede erstellte CSV-Datei wird in der benutzerdefinierten Reihenfolge sortiert, wie von dir in der Kürzelliste angegeben.


2) Du: möglichst viele Kommentare im Code
DAS ist immer meine "Königsdisziplin" *ironieaus* Smile
Ja, die meisten Codezeilen hab ich für dich kommentiert.
Aber ich find Codes kommentieren immer so langweilig! Smile
Egal, is auch erledigt...


3) Du: Die von Anfang an ausbleibende Suche mittels des dritten Kürzels blieb natürlich auch hier inaktiv.
Nun ja, selber Schuld...eigentlich...zumindest ich hab in deinen Bsp-Datenzeilen keine Personen gefunden, die - alle gleichzeitig - 3 auszuwählende Parameter eingetragen hatten.
Aber...ich hab in deiner Datentabelle an 3 Stellen das Kürzel cons eingetragen - daran zu erkennen, weil nur schwarzer Text, ohne Hintergrundfarbe.
Jetzt wähle bitte diese 3 Parameter aus: mitg,cons und vors
...und klick auf den Button
In der erstellten CSV-Datei werden 12 Einträge von 4 Personen angezeigt, weil alle 4 irgendwo mitg,cons oder vors sind.


4) Du: Außerdem interessiert mich zu meinem Verständnis, aber auch weil er von der Seite "Basis" runter muss, was für ein Objekt die Schaltfläche/der Button ist, mit dem die Suche ausgelöst wird. 

Ja, und der Button ist noch immer im Blatt "Basis", ich hab ihn nicht gelöscht.
Aber ich werd dir erklären, wie du es tun kannst.

a) es handelt sich um einen ActiveX-CommandButton
b) klick in Excel in der Menüzeile (Datei,Start,Einfügen...) auf "Entwicklertools"
den Eintrag Entwicklertools gibt es nicht in deiner Menüzeile? Dann lass dir mit Google erklären, wie dieser Eintrag auch bei dir angezeigt wird
c) Wähl im Ribbon-Menü den Eintrag Entwurfsmodus aus
d) klick 1x auf den Button, den du weghaben willst
e) klick die Taste Entf = Button gelöscht
f) wiederhole Schritt c), damit Makros wieder gestartet werden können


5) Du: Ich würde mich neben der unmittelbaren Hilfe am Code auch sehr über ein paar richtungsweisende Tipps für das Selbstudium freuen
ähh? wie jetzt? soll ich für dich in Google suchen und dann dir mitteilen, was ich gefunden habe? Smile
Ich mach das immer so:
Wenn ich in Excel/VBA/mit irgendetwas ein Problem habe, dann kann ich dieses Problem ja benennen. Und dann geb ich in Google ein paar Stichworte zu meinem Problem ein und lass mir dazu die Treffer zeigen
Irgendwas hilft mir fast immer.


6) Du: Empfehlenswert ist einer Ergänzung des Dateinamens vor erster Nutzung mit Datum und Uhrzeit des Exports (Beispiel: 2svo,ordp,vors_2024-07-25_13.47Uhr.csv).

Vor dem Speichern jeder CSV-Datei wird geprüft, ob es schon eine Datei mit z Bsp dem Namen 2svo,ordp,vors.csv gibt.
nein = dann erhält diese erste Datei den Namen 2svo,ordp,vors_2024-07-29_06.47Uhr.csv
ja = dann erhält die zweite Datei den Namen 2svo,ordp,vors.csv

Ich freu mich auf deine Antwort.

Ciao
Thorsten


Angehängte Dateien
.xlsm   Stammdaten_filtern_Vers_2024-07-29_Forum.xlsm (Größe: 147,22 KB / Downloads: 4)
[-] Folgende(r) 1 Nutzer sagt Danke an Oberschlumpf für diesen Beitrag:
  • Lothar2202
Antworten Top
#24
Hallo Thorsten,
vielen lieben Dank für deine ausführliche Nachricht und die Datei. Beides finde ich eben, weil ich dir zwei Elaborate von mir senden wollte.
Nun gibt es vermutlich Überschneidungen; ich muss mir erst deine Datei ansehen und die Erläuterungen durcharbeiten.
Noch ein paar Sätze zu meinen beiden Dateien:
Die Datei, beginnend im Namen mit "funktioniert",
  • soll dir zeigen, wie ich das mit dem Schutz mittels der "Ist-Gleich-Funktion" gelöst habe. 
  • Zugleich liefert sie das bereits beschriebene Manko im csv-Export, dass die leeren Zellen (kann nur bei den Titeln auftreten) eine Null enthalten.
  • Und schlussendlich habe ich nur ein Engabefeld gelassen, weil ich mich ganz am Anfang nicht exakt genug ausgedrückt hatte. Ich sprach von Kombinationen, und du hast diese als einschließende UND (Konjunktion) interpretiert und gebaut. Der Realität entspricht aber die Disjunktion, was ich auch versucht habe durch ersetzen deines AND durch OR. Das klappte aber nicht. Der Idealfall wären sogar 6 Eingabefelder (3x Konjunktion; 3x Disjunktion)
Die Datei, beginnend im Namen mit "funktioniert-nicht", soll dir meine Idee mit der Trennung von Eingabeseite und Datenseite zeigen. Der Rest ist wie gehabt, also mit Datenschutz über "Ist-Gleich-Funktion".

Von  deinen Erläuterungen habe ich bereits einiges selbst gefunden (3. und 4.), dennoch besten Dank für deine Bestätigung meiner schmalen Erkenntnisse.
Morgen bin ich nicht auf Arbeit, da habe ich Zeit, mich in deine Arbeit zu vertiefen.
Herzliche Grüße, Lothar


Angehängte Dateien
.xlsm   funktioniert_Daten_durchsuchen_mit-Ist-Gleich_1x-Kriterium_2024-07-29.xlsm (Größe: 296,69 KB / Downloads: 2)
.xlsm   funktioniert-nicht_Daten_durchsuchen_mit-Ist-Gleich_3x-Kriterium_2024-07-29.xlsm (Größe: 297,49 KB / Downloads: 5)
Antworten Top
#25
Hi,

was mich am meisten ärgert:
"... weil ich mich ganz am Anfang nicht exakt genug ausgedrückt hatte ..."

Du hättest mich schon nach meinem 1. Datei-Versuch darauf hinweisen müssen, dass - es nicht richtig ist - dass nur dann ein Treffer gültig ist, wenn 1 Person gleichzeitig alle ausgewählten Parameter zugewiesen sind.

DAS hast du aber nicht getan, hast dich sogar sehr über mein 1. Datei-Versuch gefreut.
In meinen 2.Datei-Versuch von heute morgen hatte ich nochmal mehrere Stunden Zeit+Arbeit investiert...aber umsonst, wiedu mir jetzt mitteilst.

Sorry, ich hab keine Lust mehr, jetzt noch mal von vorn anfangen zu müssen.
Das Grundsätzliche, wie man per VBA csv-Dateien erstellen kann, hast du ja verfügbar.
Viel Glück, dass sich jemand anders findet, der sich in meinen Code einarbeitet und ihn für dich "umbaut".

Ciao
Thorsten
[-] Folgende(r) 1 Nutzer sagt Danke an Oberschlumpf für diesen Beitrag:
  • Lothar2202
Antworten Top
#26
...da muss ich dem Thorsten aber Recht geben, Du solltest Dich schon für eine der Varianten entscheiden.

Verstehe aber das Problem nicht ganz.
Zitat:Die Antwort lautet: Ja, die csv-Datei ist immer noch eins der beiden Ziele. Das andere Ziel ist die Lösung mittels Pivottabelle, weil diese perfekt die Werte für die Kalkulationen liefert.

Die Pivotlösung steht ja und ein Tabellenblatt mit Pivottabelle als csv Datei zu speichern ist ja keine unüberwindbare Hürde. Blatt aktivieren, Speichern unter XXX als csv UTF8. Das funktioniert sogar bei gesetzten Filtern und man kann es zur Not auch als Makro aufzeichnen... dazu muss man kein Zauberer sein... Und da Du vermutlich immer mal wieder unterschiedliche Auswertungsergebnisse brauchst, sollten die auch mit entsprechenden Namen abgespeichert werden. Da wäre u.U. sowieso etwas Handarbeit notwendig... z. Bsp. wenn Du nur 3 oder 4 Namen oder nach 2 bestimmten Ausschüssen und 1 Funktion filterst...
Man muss nach dem Speichern lediglich die Originaldatei schließen und die csv Datei aus dem Explorer heraus öffnen. Dadurch werden nur die Daten der Pivottabelle angezeigt und Du kannst ganz entspannt den Bereich als ganz normalen Bereich mit VBA, Formeln oder wie auch immer verarbeiten.
Aber eigentlich ist das nicht einmal notwendig. Du musst ja sowieso schauen wo was steht, wie die Pivottabelle aufgebaut wurde. Das kann ja von Fall zu Fall unterschiedlich sein. Und da ist es vollkommen egal, ob Du die Zelle A11 in der Pivottabelle oder einem normalen Range verwendest. Wenn Du weißt, in Spalte A ab Zeile 3 stehen die Namen, dann musst Du die Namen eben dort auslesen und nicht in Spalte B usw...
Doch das ist schon ein anderer Part. Der hat nichts mehr mit der Ausgangsfrage zu tun... Du wolltest ja die csv deshalb, weil Du glaubtest, die Daten dort einfacher für den Datenimport auslesen zu können. Stimmt nur leider nicht. Die csv ist überflüssig. Der Databodyrange der Pivottable ist da schon mal eine gute Wahl.
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
#27
Hallo Thorsten,
leider gibt es hier keinen zweiten Button, mit dem man neben dem "Dankeschön" auch ein "Entschuldigung" generieren kann.
Ich verstehe, dass du sauer bist. Das würde mir vermutlich auch so gehen, wenn ich das Gefühl hätte, mein Arbeitsergebnis hat keinen Sinn, weil der Empfanger sich nicht deutlich genug geäußert hat. Aber so ist es zum Glück hier nicht, denn mit der Nutzung nur eines Eingabefeldes wird natürlich der Zweck der Datei erfüllt. Deshalb erfüllt dein Arbeitsergebnis das angestrebte Ziel und ich würde es sehr bedauern, wenn du an dieser Stelle - getragen von nachvollziehbaren Emotionen - kurz vor dem runden Abschluss (ich meine damit die Unterdrückung der Nullen in den Zellen ohne Dr.- oder Prof.-Titel) aus dem Vorhaben aussteigst.
Deshalb möchte ich mich bei dir entschuldigen bitte dich, mich bis zum Schluss zu begleiten.
Vielleicht noch drei Sätze zur Historie meiner Unexaktheit: Anfänglich bemerkte ich die logische Funktion Konjunktion nicht, und als ich sie bemerkte fand ich sie OK, weil ja die eigentlichen Abfragen sehr gut möglich sind. Außerdem bestand auf einmal die charmante Möglichkeit, auf schnellstem Wege Personen zu identifizieren, die sich mehrfach in Ausschüssen "niederlassen", was nicht dem Sinn einer breiten Einbindung möglichst vieler unterschiedlicher Personen und damit Meinungen entspricht. In einem heutigen Gespräch mit meinen Kollegen erläuterte ich ihnen den Arbeitsstand; sie fanden ihn gut, regten aber an, nach Möglichkeit zusätzlich die logische Disjunktion zur Verfügung zu haben.
Mehr kann ich nicht vortragen, um dich zur Weiterarbeit zu gewinnen und um diese zu bitten.
Vielen Dank für die Erweiterungen bei der heutigen Lösung. Ich denke dabei besonders an die Trennung des Arbeitsblatts vom Datenblatt, die Anbindung von Datum und Uhrzeit an die csv-Datei und die ausführliche Kommentierung.
Dank der Kommentierung habe ich nun Weiteres kapiert und u. a. bemerkt, dass meine heutige Aufspaltung der Tabelle "Kürzel/Funktion" - aus rein graphischen Gründen - in zwei nebeneinander liegende Blöcke zusätzlichen Aufwand bei der Progrmmierung bedeutet. Also bleibt es bei einem Block.

Thorsten, du bemerkst, dass ich von deiner weiteren Unterstützung ausgehe. Deshalb nochmals, deine bisherige Arbeit ist fruchtbar, vergiss aus Zeitgründen die logische Disjunktion und lass dich bitte für die Unterdrückung der Nullen bei den Dr.- und Prof.-Titeln motivieren.
Ich freue mich auf Weiters mit dir und verbleibe mit herzlichen Grüßen, Lothar
Antworten Top
#28
änder diese Zeile...
Code:
Range("B" & lloRNext).Value = parFound(1, liIdx)
...um in...
Code:
If parFound(1, liIdx) <> 0 Then
    Range("B" & lloRNext).Value = parFound(1, liIdx)
End If
[-] Folgende(r) 1 Nutzer sagt Danke an Oberschlumpf für diesen Beitrag:
  • Lothar2202
Antworten Top
#29
Hallo Thorsten,
erst mal herzlichen und zweifachen Dank dafür, dass du zum einen noch dabei bist, und zum anderen für den Code zu frühmorgendlicher Stunde.
Natürlich habe ich ihn noch vor dem Start zur Arbeit ausprobiert, und zwar an meinem Elaborat, bei dem es keine Trennung der Eingabe von den Daten gibt (Test_A_mit-Ist-Gleich_1-fach........). Ich nutzte diese Datei, um auszuschließen, dass ich deine letzte Datei beschädige. Also, Code-Zeile suchen und mit neuem Code ersetzt. Das Ergebnis war perfekt. Die Nullen bei den Titeln sind in der csv-Datei verschwunden.

Also habe ich mich voller Optimismus am Nachmittag an die Datei (Test-B_2024-07-30_17.27Uhr.xlsm) mit der Trennung von Eingabeseite und Datenseite gewagt; erst ohne Ersetzung des Codes, aber bereits unter Nutzung der IST-GLEICH-Funktion. Die Suche funktionierte, aber natürlich noch mit Nullen bei den Titeln.

Also weiter: In der Datei Test-B_2024-07-30_17.51Uhr.xlsm löschte ich als erstes den Kommentar in der relevanten Zeile des Codes; danach speichern, danach löschen des von dir benannten Codes, erneutes speichern, danach einsetzten der neuen Codezeile in die Lücke, speichern, danach mittels Leertaste alles in die Position gerückt, wie es bei dir aussieht, abschließendes speichern.
Der Test brachte leider die Fehlermeldung "Fehler beim Kompilieren: Sub oder Function nicht definiert" (siehe Screenshot).
Darauf kann ich mir keinen Reim machen außer dem, dass es an der Trennung von Eingabe- und Datenblatt liegt, weil es heute morgen perfekt funktionierte als Eingabe und Daten auf dem selben Blatt waren.

Natürlich habe ich mir die Erläuterungen zur Fehlermeldung angesehen, fand aber keinen Ansatz, weil ja bereits mit "Set lshBasis = Sheets("Blatt-X")" gesagt ist, auf welchem Blatt gesucht werden soll.

Mit anderen Worten, bitte sieh dir die Datei
.xlsm   Test-B_2024-07-30_17.51Uhr.xlsm (Größe: 299,05 KB / Downloads: 2)   an und sag mir, was ich bei dieser machen muss, damit sie ebenso gut mit deinem Austausch-Code funktioniert, wie es die andere von heute morgen tut. Vielleicht geht es für dich auch schneller, wenn du selbst Hand anlegst und im Kommentar nur einen Halbsatz dazu schreibst.

Und damit bin ich nochmals bei der perfekt ausführlichen Kommentierung durch dich. Sie ist eine sehr gute Brücke von der jeweiligen Codezeile zu den Hilfen im Internet, weil sie Stichworte liefert. Lieben Dank.
Soweit erst einmal. Herzliche Grüße, Lothar


Angehängte Dateien Thumbnail(s)
   

.xlsm   Test_A_mit-Ist-Gleich_1-fach-Kriterium_mit-Null-Unterdrückung_2024-07-30.xlsm (Größe: 286,96 KB / Downloads: 0)
.xlsm   Test-B_2024-07-30_17.27Uhr.xlsm (Größe: 302,28 KB / Downloads: 0)
Antworten Top
#30
Hallo Ralf,
vielen Dank für deine genaue Beschreibung des Handling für den Weg von der Pivottabelle zu einer csv-Datei.
Ich habe das zwar noch nicht nachvollzogen, genau so wenig, wie ich mit befasst habe mit der von dir am 28. Juli, 23;43 Uhr beschriebenen Auflösung der "Alias" für die Ausschüsse in meiner anfänglichen Beispieldatei.
Ich komme auf jeden Fall noch darauf zurück, bin aber, wie du es ja verfolgst, noch mit der Generierung der csv-Datei und auch ein wenig Olympia befasst.
Nun wirst du natürlich wieder sagen, dass die CSV nicht erforderlich ist. Vielleicht hast du sogar recht.
Ich möchte dir deshalb erläutern, weshalb ich diese beiden Ansätze verfolge.
Da wo ich arbeite - einem politischen Bereich - ist die Befähigung der Kollegen für einen flexiblen Einsatz von Standardprogrammen nicht besonders hoch ausgeprägt. Als ich vor ein paar Monaten dort zu arbeiten begann, war ich dahingehend erschrocken. Man erwartet Lösungen und Informationen über die dort bearbeiteten und verwalteten Sachverhalte und Personen "auf Knopfdruck". Ich habe auch keine Hoffnung, dass sich das in kurzer Zeit ändert.
Und an dieser Stelle kommt mein Alter ins Spiel; ich bin reichlich 73, ganz gut drauf, aber dennoch nicht sicher, ob ich noch Jahre lang arbeiten gehen kann oder möchte. 
Zugleich ist das Arbeitsfeld sehr interessant und die Kollegen ausgesprochen liebenswürdig. Ergo, habe ich vor einigen Wochen begonnen, ein paar Sachverhalte so anzupacken, dass die Datenverarbeitung nach meinem Abgang auch ohne mich gut klappt.
Und somit schließt sich der Kreis zum ggf. komplizierten Handling, wenn es von der Pivottabelle zur CSV gehen soll: Ich möchte etwas hinterlassen, was der Erwartung "auf Knopfdruck" entspricht.
Das ist alles, und leider die vielfache Realität in politisch-verwaltenden Bereichen.
Herzliche Grüße, Lothar
Antworten Top


Gehe zu:


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