Verknüpfung mehrerer Tabellen
#1
Hallo Leute,
 
ich habe folgendes Problem: Ich schreibe im Prinzip ein Belegungsplan für ein Fachablagesystem. Das heißt, wenn zum Beispiel jemand in der einen Tabelle etwas ablegt in Träger X und Fach Y soll in der anderen Tabelle angezeigt werden, ob das Fach Y im Träger X belegt oder frei ist.
 
Ich habe das Problem mit Hilfestellung schon per Excel-Befehle gelöst. Mit WAHL und ZÄHLENWENNS war das alles kein Problem.
Allerdings handelt es sich bei mir um mehrere Tabellen und einen sehr großen Belegungsplan. Das heißt, dass ich mit den Befehlen die Rechenleistung des Computers überfordert habe und jeder Schritt ewig brauchte, bis er bearbeitet wurde.
 
Das ist praktisch nicht vertretbar.
 
Gibts eine Lösung durch VBA? Wenn ja, wäre ich um jeden Ansatz sehr dankbar da ich absolut neu bin auf dem Gebiet.
Ich habe als Beispiel zur näheren Erläuterung eine Excel Datei hochgeladen.
 
Die Arbeitsschritte sind auf folgende runter zu brechen:
 
Für Tabelle 1 muss eine Suchfunktion programmiert werden. Sie sucht nach den Trägern und Fächern.
Tabelle 1 muss mit Tabelle 2 verknüpft sein.
Findet die Suchfunktion in Tabelle 1 einen Träger und ein Fach muss in Tabelle 2 bei entsprechnendem Träger und Fach "belegt" stehen.
Findet die Suchfunktion nichts, so soll dort "frei" stehen.
 
 

 
 
Liebe Grüße
Alex


Angehängte Dateien
.xlsx   Musterbeispiel.xlsx (Größe: 14,73 KB / Downloads: 15)
Top
#2
Hallo Alex

ich habe deine Datei gerade heruntergeladen und frage höflich, wieviel Daten sind es ungefaehr.  1000, 10.000 oder mehr.  nur ungefaehr.
Zur Information, das Problem der Rechenzeit taucht im Forum immer öfter auf. Formeln sind schön, aber ab einer bestimmten Anzahl gibt es auch Probleme mit der Rechenzeit, weil jede Eingabe neu berechnet wird. Abhilfe ist, das Berechnen auf Manuell zu stellen und einen Button einzurichten mit einem Makro das das Berechnen nur bei Klick ausführt. Die zweite Lösung ist per Vba die Zuordnung durchzuführen. Das macht auch wenig Sinn wenn man es nach jeder Eingabe ausführt. Bleibt die Frage:  Wie oft musst du aktualisieren???

mfg  Gast 123
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • APfeiffer
Top
#3
Hi,

habe ich das richtig verstanden, dass es mit VBA genauso nach jeder Eingabe neu ausgeführt wird und somit auch länger dauern kann?

Ich muss es im Prinzip nach jeder Eingabe aktualisieren. Das Geschieht allerdings willentlich. Das heißt, wenn sich jemand den Belegungsplan angucken möchte, so könnte er auch einfach auf aktualisieren klicken.

Ich habe ca. 500 Daten aber verteilt auf vielen Tabellen. Die Befehele sind als sehr sehr lange, pro Zelle die mir die Angabe für "frei" oder "belegt" machen soll.

Ich gucke mal wie ich das mit dem Makro ausführen könnte und gebe dann nochmal Rückmeldung.

LG
Top
#4
Hallo,


Zitat:aber ab einer bestimmten Anzahl gibt es auch Probleme mit der Rechenzeit

das kann man so nicht sagen. Es ist immer von der Art der Formel, aber auch vom Tabellenaufbau, Formatierungen, etc. abhängig, und das meist mehr als von Formeln. Auch VBA kann langsam sein, in den meisten Fällen sogar langsamer als Formeln. Es wird auch nur bei volatilen Formeln bei jeder Eingabe neu berechnet! Aber auch bedingte Formatierungen können bremsen.
Allerdings würde ich hier auch VBA empfehlen, da es sich offensichtlich um mehr als nur zwei Dateien handelt. Ich würde aber von vorneherein von der hier angewandten Methode abgehen. Eine Liste mit Körben, in der jede Einlagerung dokumentiert wird, was und wieviel eingelagert wurde, und dann in einzelnen Tabellen (oder mit Pivot) nach Sorten auswerten.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • APfeiffer
Top
#5
Hallo Edgar,

dein Vorschlag mit einer Liste mit Körben etc. muss ich ablehnen. Das liegt daran, dass ich am Aufbau, der genau meinem Beispiel enstpricht, nichts ändern kann und darf.

Die Frage ist, wie kann ich deinen ehemaligen Code so ändern, dass er nur über ein Makro-Button ausgeführt und somit die Liste aktualisiert wird?

LG
Top
#6
Im Endeffekt habe ich nur folgendes Problem:

In einer Zelle steht ein Code (Beispiel: =WAHL.....ZÄHLENWENNS....+...)

Nun möchte ich, dass die Zelle ihre Funktion, die sie durch den Code bekommt, erst ausführt, wenn ich auf einen Makro-Button klicke oder die Seite aufrufe. Es ist natürlich zu bedenken, dass ich um die 460 Zellen habe. Aber einmal warten ist okay, statt bei jedem Eintrag zu warten.

Wie mache ich das? Habe speziell zu dieser Anwendung keine Hilfestellung gefunden.

LG
Top
#7
Hallo,

wir können mal sehen wie wir das Problem über Button mit einem Mako lösen können. Bei 500 Daten dürfte die Laufzeit sich im Rahmen halten. Einfach ausprobieren. Um ein Makro zu entwickeln brauche ich aber konkrete Angaben zur Datei. Befinden sich alle Tabellen in einer Mappe, oder in mehreren? Wieviele Tabellen müssen durchsucht werden, wie heissen sie, in welchen Spalten/Zeilen stehen die Daten Wenn ich die Namen aus Datenschutz Gründen nicht wissen darf dann bitte wenigstens die Spalten und Zeilen wo die Daten drin stehen. Bei manchen beginnen Daten in Zeile2 andere weiter unten. Das ollte ich schon wissen um einen Lösungsvorschlag machen zu können.

Schauen wir mal in Ruhe was dabei heraus kommt.

mfg  Gast 123.
Top
#8
Vielen Dank mal im Voraus, dass Sie sich dem Problem annehmen.
Tatsächlich muss ich Name und Co. aus datenschutzrechtlichen Gründen zurückhalten. der Aufbau der Excel Datei ist der gleiche wie in meiner Beispiel-Datei im Anhang.
Nun zu Ihren Fragen:

Ich habe 22 Mappen mit je einer Tabelle darin. Also ebenfalls insgesamt 22 Tabellen. In der letzten Mappe ist die Tabelle des Belegungsplans. Alle notwendigen Daten der Tabellen beginnen in der dritten Zeile. Daten sollen bis zur 100ten Zeile eingegben werden können. Durchst soll Spalte B und C werden. Die Namen der Mappen möchte ich aus oben genannten Gründen nicht sagen.

Reicht Ihnen das?

Würde mich riesig freuen, wenn wir das hinkriegen.

LG


Angehängte Dateien
.xlsx   Musterbeispiel.xlsx (Größe: 14,73 KB / Downloads: 3)
Top
#9
Hallo Alex,

Du stellst die Berechnung auf manuell (unter Datei - Optionen - Formeln) und weist dem Button dieses Makro zu:
Sub BerechneBlatt()
 ActiveSheet.Calculate
End Sub

Gruß Uwe


Angehängte Dateien
.xlsm   Kopie von Musterbeispiel.xlsm (Größe: 20,11 KB / Downloads: 4)
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • APfeiffer
Top
#10
Vielen Danke, klappt sehr gut :)
Top


Gehe zu:


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