Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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

VBA Verweis & Finden Funktion

VBA Verweis & Finden Funktion
23.07.2014 10:41:10
JesseB_90
Moin,
ich habe folgendes Problem welches ich per VBA lösen möchte, da ein Formelabgleich Ewigkeiten dauert.
Beispieldatei: https://www.herber.de/bbs/user/91658.xlsx
Zum Problem:
Es soll ein Arbeitsplan (im Beispiel A1:D3) aus einer Liste entstehen (A8:D11). Die Termin sind aufgelistet und haben folgende Werte Terminname, Anfangsdatum, Enddatum und Teilnehmer. Jeder Termin kann entweder ein oder mehrer Teilnehemer haben. Man hat aber nicht jeden Tag einen Termin. Des Weiteren gibt es Termine, die storniert wurden, allerdings trotzdem aufgeführt werden müssen.
Bisher löse ich das Problem auf folgende Weise:
=VERWEIS(9;1/FINDEN($A9;Termine'!$H$1:Termine'!$H$1000)/(Termine'!$C$1:Termine'!$C$1000=BU$3); Termine'!$G$1:Termine'!$G$1000))
Mit einer Menge Wenn-Abfragen werden dann noch Fehler-Meldungen und die Stornomeldung rausgenommen. Der Code ist ca 1600 Zeichen lang. Bei knapp 3500 Zellen könnt ihr euch sicher vorstellen, dass dies nicht ganz schnell läuft.
Ich hoffe ihr könnt mir helfen und ich danke euch im Voraus :)
Schönen Gruß
Jesse

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Verweis & Finden Funktion
23.07.2014 14:01:05
Oberschlumpf
Hi
hier, versuch mal - mein Code ist auf deine Bsp-Datei bezogen + funktioniert
Wenn deine Originaldatei ganz anders aufgebaut ist, muss der Code von dir angepasst werden
https://www.herber.de/bbs/user/91670.xlsm
Erklärung:
-----------
Zuerst werden Zellinhalte in den oberen Zeilen gelöscht.
Im nächsten Schritt werden in Spalte B die Datumswerte ermittelt, doppelte Einträge gelöscht, sortiert und in die erste Zeile eingetragen
Fast das Gleiche passiert mit den Einträgen in Spalte D.
Die sortierten Werte werden dann nicht in Zeile 1, sondern in Spalte 1 eingetragen
Nun wird überprüft, an welchen Tagen Name1 (hier Daniel) einen Termin hat.
Wenn gefunden, wird in Zeile für Name1 (Daniel) in entsprechende Spalte der Wert aus Spalte A übertragen.
Es wird so lange geprüft, bis keine Einträge für Daniel mehr vorhanden.
Nun wird alles für Name2 (Max) wiederholt.
Bei weiteren Namen würden auch diese geprüft werden.
Es dürfen aber nicht mehr als 5 Namen auftauchen, da obere + untere Tabelle durch eine Leerzeile getrennt sein muss.
Hilfts?
Ciao
Thorsten

Anzeige
AW: VBA Verweis & Finden Funktion
23.07.2014 14:51:44
JesseB_90
Moin,
erst einmal vielen Dank für dein Bemühen :)
So wie ich das jetzt verstanden habe und auch ausprobiert habe, fasst dein Code aber auch meine Beschriftungen an. Das möchte ich gerne vermeiden. Der Sinn des ganzen ist, dass ein Arbeitsplan erstellt wird, den ich Monatsweise ausdrucken kann. Daher darf die erste Spalte eigentlich nicht gelöscht werden. Hier gibt es ein (festes) Layout.
Ich versuche mal zu erklären, wie ich mir den Code denke:
Excel soll sich zu jeder Zelle des Kalenders den Namen und das Datum merken und dann in meiner anderen Liste prüfen, ob es Übereinstimmungen gibt. Sprich ob der Mitarbeiter einen Termin an diesem Tag hat. Wenn dem nicht so ist, soll er das Feld leer lassen.
Des Weiteren brauch ich noch eine Abbruchbedingung bei Stornierung des Termins.
Wie ich das aber als Code schreibe weiß ich leider nicht :(
Cheers :)

Anzeige
AW: VBA Verweis & Finden Funktion
23.07.2014 15:06:05
Oberschlumpf
Hi
Sorry, ich weiß es auch nicht, da du leider nicht verraten hast, ob die Bsp-Datei ganz genau so aufgebaut ist, wie die Originaldatei.
Und das Löschen der Werte in 1. Zeile (was du nicht willst) + 1. Spalte ergibt sich daraus, dass ja in der 1. Zeile die Datumswerte stehen. In der 1. Spalte stehen die Personennamen.
Wenn nun in der unteren Liste ein weiterer Datumseintrag hinzukommt, z Bsp 4.1.14, dann ist deine "feste" erste Zeile nicht mehr ganz nutzbar, da ja der Eintrag für 4.1.14 fehlt.
Aus dem Grund lösche ich erst die Werte in Zeile 1, um sie danach wieder vollständig! einzutragen.
Ich ändere NICHTS am Format/Layout, denn die Werte stehen ja hinterher im gleichen Format, wie sie vorher gelöscht wurden.
Wenn aber, wie ich vermute, deine Originaldatei ganz anders aussieht, wie die Bsp-Datei von dir, dann hilft uns auch nicht die Bsp-Datei, da ja der Code ans Original angepasst werden müsste.
Das mag und mache ich aber nicht, weil das Ganze dann wie Fischen im Trüben wäre, oder wie oft ein anderer Antworter schreibt, "man müsste in die Glaskugel schauen, die aber gerade dann kaputt ist".
Ciao
Thorsten

Anzeige
AW: VBA Verweis & Finden Funktion
24.07.2014 12:15:27
JesseB_90
Moin,
ich habe die Datei jetzt leider grade nciht vorliegen, werde diese aber morgen nochmal posten. Aber im Endeffekt sind in Zeile 3 alle Daten des Jahres (01.01 - 31.12) und in Spalte A die Namen der Teilnehmer. Allerdings hat jeder Teilnehmer 5 Zeilen, die dann mit Unterschiedlichen Inoformationen zu den Terminen gefüllt werden.
Was ich brauche ist halt die Funktion, dass Excel jeweils die Kopf(Datum)- und Seitenzelle (Name) mit der anderen Liste abgleicht und bei doppelter Übereinstimmung (also Max hat am 02.01. einen Termin) die Zelle mit dem Terminname füllt (oder halt anderen Termindetails die in der Terminliste stehen).
Grüße :)

Anzeige
AW: VBA Verweis & Finden Funktion
24.07.2014 13:06:32
Oberschlumpf
Hi
dann warten wir halt auf DIE Bsp-Datei, die im Layout mit dem Original ÜBEREINSTIMMT!!!!....und dann fangen wir...vielleicht.....wieder von vorn an!
Vielleicht deswegen, weil ich ja gar nich weiß, wie die Datei eigentlich aussieht.
Und wenn nun aber von dir was kommt, was ich (noch) nicht lösen kann....tja, hätt ich das vorher gewusst, hätt ich hier gar nicht geantwortet.
Sorry, aber...
...wer eine qualifizierte Antwort erwartet, muss eine qualifizierte Frage stellen...
...was du bis jetzt noch nicht geschafft hast - weil einfach das Original-Layout fehlt
Ciao
Thorsten

Anzeige
AW: VBA Verweis & Finden Funktion
25.07.2014 10:53:19
JesseB_90
Moin,
erst einmal muss ich sagen, dass ich das Problem wohl unterschätz habe und dachte, dass das eigentlich wohl sehr einfach sein müsste. Aber hab auch quasi null Erfahrung mit VBA.
Hier jetzt einmal die beiden Datein, die ich benutzt:
https://www.herber.de/bbs/user/91715.xlsx = Kalender
https://www.herber.de/bbs/user/91716.xlsx = Terminliste
Erläuterung zu den Datein:
Kalender: Ganz normaler (Arbeits-)Kalender ohne Wochenenden. Jeder Teilnehmer hat 5 Zeilen die aus der Terminliste gefüllt werden sollen:
1. Zeile = Startdatum des Training
2. Zeile = Enddatum des Training
3. Zeile = Ort
4. Zeile = Raum
5. Zeile = Material
Terminliste:
Die Spalten sind durch die Titel eigentlich selbsterklärend. Die Inhalte sollen wir folgt verteilt werden:
"Terminname" - Zeile 1 und 2
"Location" - Zeile 3
"Roombooking" - Zeile 4
"Material" - Zeile 5
Wenn bei "D-Day" jetzt ein "Storno" steht, so soll dieser Termin nicht einbezogen werden.
Wenn du/ihr mir zeigen könnt, wie ich diesen Ablgeich hinbekomme, das Excel Name und Datum überprüft und dann den Inhalt aus einer anderen Zelle in der selben Zeile überträgt, hoffe ich, dass ich das auf die anderen Zeilen (im Kalender) übertragen kann.
Ich hoffe, dass meine Anliegen jetzt etwas klarer ist.
Gruß
Jesse

Anzeige
AW: VBA Verweis & Finden Funktion
25.07.2014 13:00:56
Oberschlumpf
Moin,
angesehen hab ich noch nich (keine Zeit), aber wenigstens antworten will ich.
Die Beschreibung sieht schon mal viel besser aus - so wirds dann auch mit den Dateien sein, hoff ich.
Leider is im Mom sehr viel Stress, am WE bin ich nich zu Hause. So kanns leider sein, wenn nich noch wer anders sein Glück versucht, dass du vllt bis Mo warten musst.
Ciao erst mal
Thorsten

AW: VBA Verweis & Finden Funktion
25.07.2014 14:01:27
JesseB_90
Hi,
wenn ihc bis Mo warten muss, ist das gar kein Problem :)
Vielen Dank für dein Bemühen!
Ein schönes (hoffentlich nicht so stressiges) WE :)

wer anders bitte...
25.07.2014 16:22:15
Oberschlumpf
Hi Jesse
Schade, schade, schade....aber ich bin raus!
Ich mache (auch) Fehler und erwarte, dass Andere Fehler machen. Is alles nich so schlimm, weil wir nunmal aus Fehlern lernen.
Aber ich bin NICHT schlampig!
Und auch DAS erwarte ich von Anderen.
Schau dir mal deine Start- und Enddatumswerte an.
WIE können SECHS Trainings schon am 08.01.2014 beendet sein, wenn sie doch erst vieeeel später beginnen?
Wir haben uns schriftlich bisher DREI MAL unterhalten, und noch immer schaffst du es leider nicht, die Daten zu liefern, die benötigt werden.
Klar, ich könnte jetzt jedes Enddatum auf Startdatum setzen, oder Startdatum + x Tag(e).
Aber da fängts schon wieder an. Ich weiß NICHT, wie lange so ein Training dauert. Und deswegen ist es auch nicht mein Job, die richtigen Daten einzutragen.
So, du kannst dich jetzt "angepisst" fühlen, oder versuchen, damit anzufangen, auch "nur" so ein Excel-Hilfs-Projekt von Anfang bis Ende durchzudenken.
Ich wünsch dir viel Erfolg.
Ich sehe zwar, es ist machbar, aber die klitzekleinen Details sind halt unpassend, und das kann dazu führen, dass das Ganze nach richtigstellen aller Infos noch mal umgestaltet werden muss.
Ciao, und trotzdem weiterhin viel Spaß im echt besten Excel-Forum, das ich kenne
Thorsten
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige