Anzeige
Archiv - Navigation
1144to1148
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

komplizierte Suchfunktion glaub ich

komplizierte Suchfunktion glaub ich
Sonja
Hallo Ihr Lieben, ich hoffe es erbarmt sich jemand und kann einem EInsteiger eine etwas komplizierte Frage beantworten oder sogar ein Beispiel programmieren:
Es ist eine Tabelle vorhanden, in der 3 Spalten und bestimmt 2000 Zeilen sind.
In A steht ein Datum, zB. 22.11.2008, darunter 18.12.2008, dann 02.01.2009 usw.
Daneben in B steht immer nur ein Teilnehmername (z.B. Uli, Klaus, Peter etc.).. In C steht, zu welcher Gruppe er gehört (z.B. W, F, H usw.).
Die Liste ist vorhanden und umfangreich.
Da unsere Mitglieder eine bestimmte Anzahl von Pflichtveranstaltungen pro Jahr haben müssen und das so eine elende Sucherei ist, soll auf einem 2ten Blatt folgendes passieren:
Oben kann ich in so einem Drop Down Menü das Jahr wählen (nur 2008, 2009, 2010 usw) und dann die Gruppe, aus der die Mitglieder erscheinen sollen.
Dann sollen wie von Geisterhand darunter die Mitglieder (pro Gruppe max. 70) in "A" erscheinen und daneben (in "B", "C", "D" usw.) die Daten, an denen der Teilnehmer aus der enstprechenden Zeile in "A" teilgenommen hat...
Zudem soll ja jeder Name nur einmal erscheinen, obwohl er ja in Tabelle 1 in Spalte A durchaus ganz oft vorkommt...
Ganz schön komliziert, oder?
Ist so etwas trotzdem auch für einen Anfänger möglich?
Oder muss ich eine Auftragsprogramierung in Anspruch nehmen?
Ich habe nach einem ähnlichen Beispiel im Forum gesucht, leider aber nichts gefunden...
In Hoffnug auf Hilfe,
Sonja
ne Bsp-Datei wär klasse
23.03.2010 00:25:49
Oberschlumpf
Moin Sonja
Zeig uns mal bitte deine Datei mit Bsp-Daten, wie sie JETZT aussieht, und in nem anderen Blatt (gleiche Datei), wie sie aussehen soll.
Ciao
Thorsten
die Datei NICHT im XL 2007 Format!..owT
23.03.2010 00:28:45
Oberschlumpf
AW: die Datei NICHT im XL 2007 Format!..owT
23.03.2010 00:51:09
Sonja
Sorry, hier als 97-03er Variante

Die Datei https://www.herber.de/bbs/user/68751.xls wurde aus Datenschutzgründen gelöscht


kann leider nicht helfen
23.03.2010 01:45:58
Oberschlumpf
Hi Sonja
Ich weiß zwar, was du erreichen möchtest (danke für die Datei), aber ich weiß leider nicht, wie ich es umsetzen kann.
Vielleicht hat ja wer anders eine Lösung.
Ciao
Thorsten
AW: komplizierte Suchfunktion glaub ich
23.03.2010 00:33:33
Sonja
... bevor ichs vergesse: Das ganze muss also wirklich auf einem anderen Tabellenblatt erscheinen als auf dem wo die "Datenbank" ist. Bei der Eingrenzug der Suche muss das Jahr reichen, weil alle Teilnahmen pro Jahr angezeigt werden müssen. Und was total dumm ist: Manchmal sind in Tabelle 1 2 x der gleiche Namen bei gleichem Datum eingetragen - das Datum soll dann aber in Tabelle 2 nur einmal erscheinen..
ich glaub, jetzt hab ichs komplitiert genug erklärt ;o))
LG, Sonja
Anzeige
AW: komplizierte Suchfunktion glaub ich
23.03.2010 02:53:15
fcs
Hallo Sonja,
du solltest dich von der momentan gewünschten Darstellung des Ergebnisses lösen. Das läßt sich nur per Makro umsetzen und dass wird schon relativ kompliziert.
Benutze für die Auswertung der Daten einen Pivottabellenbericht oder wenn du unbedingt für jede Gruppe einen separaten Tabellenbereich haben willst mehrere Pivottabellenberichte. Die Pivotberichte bieten die von dir gewünschten Filtermöglichkeiten. Die Auswertung wird jeweils nach Änderung eines Parameters automatisch aktualisiert.
Ich hab in der Datei mal ein Beispiel eingebaut. Durch Verschieben der Zeilen/Spalten und Seitenfelder kann man die Darstellung noch varieren und auch andere Zusammenfassungen sind möglich.
Das besondere in dem Beispiel ist, dass die Daten der Spalte "Datum" nochmals gruppiert wurden, so dass Sie jahresweise ausgewertet werden können.
Diese Auswertungen solltest mit etwas Einlesen in die Hilfe für Pivot-Tabellen hinbekommen ohne Programmierhilfe anzufordern.
Gruß
Franz
https://www.herber.de/bbs/user/68752.xlsx
Anzeige
AW: komplizierte Suchfunktion glaub ich
23.03.2010 04:29:19
Walter
Guten Morgen Sonja,
Hier habe ich als Beispiel eine Auskunft aus einer Tabelle.
https://www.herber.de/bbs/user/68753.xls
Suchbegriff in Zelle B2 eingeben.
Gruß
Rentner Walter
AW: komplizierte Suchfunktion glaub ich
23.03.2010 07:53:22
welga
Hallo,
das würde ich definitv über eine Pivot-Tabelle lösen. Wäre die einfachste und elleganteste Lösung. Jedoch wenn du nach Jahr filtern willst, dann würde ich eine Hilfsspalte "Jahr" einfügen (Formel D2=Jahr(A2)).
In den Seitenbereich dann Jahr und Status zum filtern. In den zeilenbereich die Namen, in den Spaltenbereich das Datum und in den Datenbereich z.B. Anzahl Datum.
Dann kannst du einfach und bequem filtern.
Gruß
welga
Anzeige
AW: komplizierte Suchfunktion glaub ich
23.03.2010 08:45:59
Sonja
Guten Morgen und schon mal Dankeschön!
Das ist ja klasse, wie schnell Ihr mir helfen möchtet, SUPER!
@Franz - leider bekomme ich Deine Datei nicht geöffnet, zwar entpackt aber das wars dann...
@Walter - Dankeschön, aber leider kan ich da so nicht umsetzen.
Problem: Ich muss nach Bereich und Jahr suchen können und dann wie gesagt in A den Namen und dahinter die Daten an denen teilgenommen wurde. Udn wichtig ist, dass doppelte Daten nur 1 mal angezeigt werden...
Alternativ wäre es auch OK, wenn nach Wahl der Gruppe und des Jahres in A alle Namen der Gruppe (jeder Namen nur 1 mal, auch wenn in der Datenbank der Namen ja x mal erscheint) und dahinter die Anzahl der Teilnahmen im gewählten Jahr (bei gleichem Datum nur 1 mal zählen) erscheint...
Oh Mensch, ist das kompliziert....
Hilfe ;o))
Noch mal Danke an Euch alle, vieleicht hat ja jemand noch eine andere Lösung?
LG, Sonja
Anzeige
siehe:AW: die Datei NICHT im XL 2007 Format!..owT
23.03.2010 09:46:11
welga
AW: Pivot-Tabellenbericht anlegen
23.03.2010 10:08:10
fcs
Hallo Sonja,
benenne nach dem Download die Datei xxxx.zip um in xxxx.xlsx. Dann sollte Excel2007 diese datei problemlos öffnen können.
Ansonsten kannst du den Pivottabellenbericht auch selbst in Angriff nehmen.
1. Füge -falls nicht vorhanden- oberhalb der 1. Datenzeile eine Zeile ein und gib Spaltentitel ein.
Name | Datum | Gruppe |
2. Markiere die 3 Spalten, dann Menü Einfügen --- Pivot--Pivottabellenbericht
3. Den Hinweisen des Assistententen folgen/Wünsche eingeben.
4. Im Layout ziehst du dann die Felder Gruppe, Name und Datum ins Zeilenfeld. Das Feld Name ziehst du zusätzlich ins Datenfeld. Excel sollte dann schon automatisch die Rechenfunktion "Anzahl" wählen.
5. Das Grundgerüst steht so. Jetzt Rechte-Maus-Klick auf das Feld "Datum" und Gruppieren wählen. In der angezeigten Liste markierst du nur Tag und Jahr.
6. Excel generiert jetzt ein Gruppenfeld für Jahr. Dieses Feld ziehst du per Drag&Drop von der 3. Position nach links vor die Gruppe oder ins Seitenfeld.
7. jetzt kannst du mit dem Feinschliff am Bericht anfangen.
z.B.
- die Feldoptionen so einstellen, dass keine Zwischenergebnisse angezeigt werden.
- Filter für Namen einstellen, so dass (Leer) nicht angezeigt werden.
- Sortierung einstellen falls gewünscht.
Jetzt kannst du mit den Filtern "spielen", um die Daten für einbestimmtes Jahr oder Gruppe anzuzeigen.
Gruß
Franz
Anzeige
wenn meins funzt,
23.03.2010 11:44:23
Oberschlumpf
..hi Christian, dann geht es auch ohne Hilfsspalten ;-)
Aber ok, du hast der Ursprungstabelle noch sehr viel mehr Einträge hinzugefügt als ich.
Aber ich denke, wenn Sonja soooo faul is, und nur so wenige Einträge zur Verfügung stellt, dann bin ich eben auch faul! :-)
Mal sehen, ob sie mit deiner und auch meiner Lösung zufrieden ist.
Ciao
Thorsten
@ Thorsten
23.03.2010 11:55:17
Christian
Hallo Thorsten,
war etwas unglücklich ausgedrückt, denn natürlich geht sowas per vba ohne Hilfsspalten. Aber mit Vba hab ich noch immer nichts am Hut ;-) und somit meinte ich, das eine Formellösung nur mit Hilfsspalten funktioniert!
Wird vielleicht doch mal Zeit, das ich mich mit der großen Unbekannten vba beschäftige..;-)
MfG Christian
Anzeige
AW: @ Christian
23.03.2010 11:59:00
Oberschlumpf
lach
Hi Christian
Und ICH hatte deine Datei gar nicht auf VBA-Code "überprüft". Ich hatte es einfach vorausgesetzt, dass Code vorhanden ist ;-)
Aber ich stelle eh gerade fest, dass meine Datei wohl doch noch nicht so richtig funzt :-(
Habe deine Werte aus Tabelle 1 mal übernommen - es werden (noch) nicht alle Datumseinträge in Tabelle 2 gefiltert...mist!
Aber egal..ich teste mal weiter....und wäre Sonja nich so faul gewesen, und hätte gleich mehr Daten zur Verfügung gestellt, dann hätte ich meine Fehler vielleicht schon früher bemerkt ;-)
Ciao
Thorsten
hab mein Glück doch mal versucht
23.03.2010 11:33:14
Oberschlumpf
Hi Sonja
Vielleicht hab ich es ja geschafft.
Versuche mal das hier:
https://www.herber.de/bbs/user/68756.xls
Ich habe es Step-by-Step versucht
Step1
Zuerst habe ich in Tabelle 2 nach Auswahl von Jahr + Gruppe alle Einträge übertragen, die in Tabelle 1 vorhanden sind
So stehen jetzt alle Namen und Datumseinträge wie in Tabelle 1 untereinander - auch doppelt
Step2
Dann habe ich alle Datumseinträge für den gleichen Vornamen in 1 Zeile verschoben und Zeilen mit doppelt vorhandenen Vornamen gelöscht
Jetzt gibt es zumindest schon mal keine doppelten Namenseinträge mehr
Step3
Nun habe ich noch die Datumseinträge überprüft.
Und auch hier pro Zeile jedes Datum gelöscht, welches doppelt vorhanden ist
Jetzt gibt es weder in Namen noch in Datumseinträgen doppelte Werte - so wie du es wolltest...hoffe ich ;-)
Änderungen von mir:
Ich habe "deine" Comboboxen aus der Formular-Symbolleiste gegen Comboboxen aus der Steuerelemente-Symbolleiste getauscht, da diese sich besser mit VBA-Code steuern lassen.
"Deine" Wertzuordnungstabelle für die Comboxen habe ich gelöscht.
Die Comboboxen erhalten ihre Werte nun bei jedem Start der Datei per VBA-Code.
Wenn du weitere oder weniger Jahreseinträge benötigst (ich hab die Jahre bis auf 2020 erhöht), kannst du das im VBA-Code anpassen. Ich habe die entsprechende Stelle mit einem Kommentar "markiert".
Das Gleiche gilt für die Gruppen-Einträge in Combobox2.
Hoffe, das ist so ok?
Hilfts denn?
Ciao
Thorsten
Anzeige
Korrektur
23.03.2010 12:23:05
Oberschlumpf
Hi Sonja
Hier nun meine korrigierte VBA-Lösung.
https://www.herber.de/bbs/user/68760.xls
Fehler gefunden mit Hilfe von .... Christian.
Klappt es denn wie gewünscht?
Ciao
Thorsten
AW: Korrektur
23.03.2010 20:56:00
Sonja
Halli Hallo -
hier ist die faule (jaja, so habt Ihr mich umschrieben) Sonja ;o)
Also ich hab die VBA Lösung die Thorsten mit Hilfe von Christian gebaut hat ausprobiert -
S U P E R ! ! !
Soweit ich das erkennen kann, ist das genau!!! dass, was ich suche. DANKESCHÖN AN ALLE, DIE MIR HIER "ZUGEHÖRT" UND GEHOLFEN HABEN!!!
Nur ein Problem hab ich noch: Wie kann ich die Funktion in meine Arbeitsmappe kopieren?
Vielen Lieben Dank und einen wunderschönen Abend,
Sonja - die sich jetzt öfter mal hier sehen lässt ;o))
Anzeige
AW: Korrektur
23.03.2010 23:07:44
Sonja
...im Ernst, Deine Lösung istSuper!
Nur müsste ich die jetzt in meine Arbeitsmappe importieren.
Kannst Du mir eine Step for Step Anleitung für Dumme basteln?
Das wäre Toll!
LG, Sonja
AW: Korrektur
24.03.2010 00:25:09
Oberschlumpf
Huhu Sonja :-)
Schön, freut mich zu lesen, dass ich ins Schwarze traf :-)
Ich würde auch gern eine "Punktlandung" schaffen, wenn es darum geht, das Ganze in deine Originaldatei zu übertragen - aber ich kenne deine Datei ja gar nicht ;-)
Ich las noch mal deinen Ersteintrag.
Und wenn ich richtig vermute, sind auch in der Originaldatei die selben Spalten betroffen, wie in deiner, bzw meiner Bsp-Datei.
So denke ich, dass am Code selbst wohl nix verändert werden muss.
Das eigtl Problem könnte aber sein, dass ich ja die Comboboxen in Tabelle 2 ausgetauscht habe.
Anpassen könntest du das vielleicht so:
- lösch die vorhandenen zwei Comboboxen
- wenn nicht sichtbar, aktiviere die Symbolleiste "Steuerelement-Toolbox"
(wie das in Excel 2007 geht, weiß ich leider nicht, da ich nicht mit Excel 2007 arbeite)
- wenn die Symbolleiste sichtbar ist, dann füge aus dieser Symbolleiste wieder zwei Comboboxen (CB) dem Tabellenblatt 2 hinzu
1. nun klick mit der rechten Maustaste auf die erste CB und klick dann mit links auf "Code anzeigen"
es öffnet sich nun der VBA-Editor mit diesen zwei Zeilen
Private Sub ComboBox1_Change()
End Sub
2. füge zwischen diese zwei Zeilen diese Zeile ein:
sbAuslesen
- wiederhole Schritt 1+2 für Combobox2
So, und nun musst du nur noch den restlichen VBA-Code aus meiner Datei in deine Datei einfügen.
Ich glaube, das klappt am besten, wenn du...
- nur meine Datei geöffnet hast
- öffne dann mit Alt-F11 den VBA-Editor
- irgdwo (meistens links) siehst du eine Auflistung unterhalb von VBAProjekt (dateiname.xls)
- klick mit der rechten Maustaste auf den Eintrag "Modul1" und wähle mit links den Befehl "Datei exportieren..." aus
- es öffnet sich ein Datei exportieren-Fenster, mit dessen Hilfe du jetzt die Datei "modul1.bas" irgdwo speichern musst
- schließ nun meine Datei und öffne deine Originaldatei
- wechsel wieder zurück in den VBA-Editor
- klick nun mit rechts unterhalb von der Auflistung von VBAProjekt (dateiname.xls) irgdwohin, wo du nicht einen vorhandenen Eintrag berührst
- wähle mit links den Befehl "Datei importieren..." aus
- nun öffnet sich ein Datei importieren-Fenster, mit dessen Hilfe du nun die zuvor gespeichterte Datei "modul1.bas" in deine Originaldatei einfügst (importierst)
Wenn erfolgreich, existiert nun auch in deiner Originaldatei unterhalb von VBAProjekt... ein Eintrag "Module" und darunter "Modul1
So, und wenn all das hier nicht zu dem von dir gewünschten Erfolg führt, dann muss der Code vielleicht doch angepasst werden.
Aber...du verstehst...ohne deine Originaldatei werde ich das wohl nicht schaffen ;-)
Klappts denn?
Ciao
Thorsten
AW: Korrektur
29.03.2010 23:22:29
Sonja
Huhu, Oberschlumpf!!!
Vielen lieben Dank für Deine Anleitung - aber genau so hab ichs auch schon mal versucht...
Klappt net. Warum nur? Ich hab so einmal eine leere MAppe genommen udn genau nach Deiner Anleitung versucht, zumindest hier die Funktion einzubauen... Hier das Resultat:
https://www.herber.de/bbs/user/68872.xlsm
Vieleicht siehst Du ja, wo genau ich den Fehler mache?
In meiner Datei gibts zudem schon eine Reihe Module, wobei Dein Modul dann beim Import zum Modul11 wird..
Woher weiß die ComboBox, wo sie die Daten sucht? sbauslesen ist klar, aber weiß sie auch in welchem Modul?
Und ich find im VBA Code nicht die Angabe zu dem Tabellnblatt, in dem gesucht werden muss... Kannst Du mir da ein paar Hilfestellungen geben, ich mag ja versuchen, auch zu verstehen was ich da machen?
Einen lieben Gruß aus der Nacht,
Sonja
AW: Korrektur
29.03.2010 23:29:27
Oberschlumpf
Hallo Sonja
Wie ja schon einmal erwähnt, habe ich kein Excel 2007. Und somit kann ich auch diesmal wieder nicht deine Datei öffnen...seuffzzz :-)
Ciao
Thorsten
AW: Korrektur
30.03.2010 02:53:18
Oberschlumpf
grins
ich kann dir nich widersprechen..hehe..na ja..ich würd dich aber nie als "blöd" bezeichnen :-))
Hi Sonja!
Hab deine Datei läuffähig gemacht (und tatsächlich noch n paar Fehler gefunden..tztz..Asche auf mein Haupt :o)) )
https://www.herber.de/bbs/user/68876.xls
Bei dir passierte nix, weil du den Code für das Workbook Open-Ereignis vergessen hattest.
Eigentlich...aber nachdem ich es einfügte, passierte noch immer nix...tztz :-)
Und deswegen nun meine Fehler:
Du hattest schon die Einträge in Combobox2 für die Gruppen eingetragen
.ComboBox2.AddItem "a"
.ComboBox2.AddItem "w"
.ComboBox2.AddItem "g"
.ComboBox2.AddItem "h"
in Kleinschrift
Mein Code "erkannte" aber bis gerade eben nur Großbuchstaben.
Aber nun habe ich den Code angepasst, und es ist jetzt egal, ob du in Klein- oder Großschrift die Gruppen einträgst.
noch mal (m)ein Fehler:
an der Stelle im Code, in der alle Zeilen-Einträge in Spalten-Einträge umgewandelt werden, lief der Code bisher immer alle Zeilen durch, die zu Beginn gefüllt waren.
Aber spätestens nach dem Löschen der ersten Zeile (weil dieser Eintrag ja nun in eine andere Spalte verschoben wurde), gibt es eine Zeile weniger - und im Verlauf des Codes werden es immer noch weniger genutzte Zeilen - trotzdem durchlief mein Code weiterhin auch noch alle gelöschten Zeilen.
Hab ich auch geändert.
Nun "erkennt" mein Code gelöschte Zeilen und beginnt dann sofort mit dem erneuten Durchlauf für den nächsten Namen.
Du willst "es wieder gut machen"? :-))
...kennst du DIE Stadt, die in ganz Europa die meisten Brücken hat? :o)
Diese Stadt hat auch viele Kneipen,Bars,etc, in denen man mich sehr gerne mal einladen kann...lach
So, Sonja, du Nachtschwärmerin (wie ich auch) :-), hoffe, dass nun alles funktioniert.
Wenn nicht, dann melde dich einfach wieder...darfst du natürlich auch tun, wenn denn alles gut is ;-)
Ciao
Thorsten
AW: Korrektur
30.03.2010 03:15:14
Sonja
Hi,
mitten in der Nacht noch ne Antwort... Beeindruckend ;o))
Sagst mir noch, was und wo ich denn das Workbook Open Ereignis eintragen muss?
Deinen Code kann cih ja nun schon mal prima kopieren ;o)))
Hmm... die meisten Brücken.. Hamburg, oder? Können die auch Bier brauen? Bin ja eher ein "Kölsch" Kind ... ;o))))
Prost, Sonja!
AW: Korrektur
30.03.2010 03:33:55
Oberschlumpf
Hi
Wie, wo, was eintragen?
Ich dachte, du übernimmst jetzt meine letzte, gesendete Datei.
Aber ok. Dabei handelte es sich wohl auch nur um ein Bsp von dir.
Gut.
Also...
1. Öffne deine Originaldatei
2. Öffne mit ALT-F11 den VBA-Editor
3. Suche nach dem Eintrag "DieseArbeitsmappe" und klick doppelt drauf
4. Im größten Fenster (direkt darüber befinden sich 2 Comboboxen mit den Einträgen "Allgemein" und "Deklarationen") fügst du diese 3 Zeilen ein:
Private Sub Workbook_Open()
sbCmbFill
End Sub
5. Suche nun wieder nach dem Eintrag "Tabelle 2 (Tabelle 2)" und klick auch da doppelt drauf
6. Wenn da noch kein Code vorhanden ist, füge diese Zeilen ein:
Private Sub ComboBox1_Change()
sbAuslesen
End Sub

Private Sub ComboBox2_Change()
sbAuslesen
End Sub
Voraussetzung ist hier aber, dass sich in deiner Tabelle 2 auch 2 Comboboxen aus der Symbolleiste Steuerelemente-Toolbox befinden!
7. So, un nun noch meinen restlichen Code in dein Modul1 eingefügt und fertig! :-)
Sollte es nun noch immer nicht in deiner Originaldatei funktionieren, dannnn.....
....zeig mir bitte bitte bitte!! deine Originaldatei :-)
Dein vielleicht folgendes Argument "aber da sind Daten/Werte drin, die darf ich niemandem zeigen!!" würde ich entgegnen mit Na! Dann lösche doch alle Daten/Werte und zeig mir nur die leere Datei (aber Layout noch vorhanden!), in die dann ich den Code einfüge ;-)
Bin auf deine Antwort neugierig......noch in dieser Nacht bitte...hehe
Ciao
Thorsten
Bierfrage vergessen :-)
30.03.2010 03:38:35
Oberschlumpf
...nach Allem, was ich bisher über "euer" Kölsch gehört habe, verdient dieses Gebräu ja gar nicht die Bezeichnung "Bier"...hihi
Und so gesehen können wir Hamburger ;-) tatsächlich jedes Bier besser brauen...grins
Aber wie gesagt, ich hab das mit dem Kölsch nur gehört, selbst noch nich getrunken :)
Und ich weiß noch nich mal, ob HH ne eigene Brauerei hat :-)
Aber viele Biere, die wir "importieren"..grins...schmecken lecker! :-)
Ciao
Thorsten

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige