5.9k Aufrufe
Gefragt in Tabellenkalkulation von
Guten Abend,

ich suche nun schon seit vielen Tagen im www aber zufriedenstellende Lösungen habe ich bisher nicht entdecken können.


Was möchte ich?
Ich will in Abhängigkeit von einem Zellwert nebenstehend ein Bild anzeigen lassen.

Warum? (Projektbeschreibung; abstrakt)
Es gibt 100 Dinge, mit zugehörigen Bildern, die in Abhängigkeit von Zeit(Datum) oder anderen Faktoren gefunden werden können
Ob Zeit und/oder Faktor für Ding1; Ding2;...;Ding100 zutreffen, prüfe ich per Tabellen und Formeln an deren Ende ich mir die Position der Grafik im Quellbereich ausgeben lasse
Ich habe einen "Kalender" erstellt mit einem Zeitraum von 14 (anfangs 31) Tage ab einem vom Benutzer festzulegenden Datum
Jeden Tag soll ausgegeben werden, welches Ding gefunden werden kann. Hierfür habe ich 25 Positionen bereitgestellt (anfangs 40), denn es können auch mehrere Dinge an einem Tag gefunden werden.
Neben jeder Position finden sich die berechneten Werte für den Bezug zur Grafik aus dem Quellbereich, in dem sich die 100 Grafiken befinden

Was ist mein Problem?
Ich habe nicht nur 1 oder 3 Bilder, sondern versuchte zunächst 1.371 verknüpfte Grafiken (31 Tage á 40 Positionen + weiteres) einblenden zu lassen, später reduzierte ich die Anzahl auf 464.
In beiden Fällen ist Excel nach dem Einbau der verknüpften Grafiken sehr langsam und sämtliche Aktionen (Eingabe von Daten, kopieren, entf, etc.) dauern mindestens 5sek.
Wenn ich einfach nur so z.B. 1000 Grafiken eingefügt hatte, blieb Excel trotzdem flott. Sind also verknüpfte Grafiken kritisch?


Was habe ich bisher versucht?
Ich erstellte verknüpfte Grafiken (Quellgrafiken sind in Arbeitsmappe enthalten) und habe sie benannt in der Bearbeitungsleiste. Die Namen habe ich zuvor im Namensmanager definiert.
Im 1. Versuch hatte ich für jede anzuzeigende Grafik die Formel =indirekt("'Tabellenname'!" & Zellwert 1 & Zellwert 2) angewandt
Zellwert 1 => per Formel habe ich mir die Buchstaben ausgeben lassen
Zellwert 2 => per Formel ließ ich mir Zahlen ausgeben

Da ich es nicht hinbekommen habe, relative Bezüge im Namensmanager zu erstellen (ist das möglich?) musste ich also für jede anzuzeigende Grafik (also jeden Namen) die Zelle(n) definieren, aus der sie sich die Werte auslesen sollten, um dann per "=indirekt" auf den Quellbezug zuzugreifen und die entsprechende Grafik auszugeben. 1.371 definierte Namen! (oO)
Hat ja auch prima geklappt, nur leider war Excel dann sehr langsam.
Selbiges bei Reduzierung der anzuzeigenden Grafiken auf 464 Stück.

Ich habe die automatische Berechnung auf manuell gestellt. Das brachte leider keine Veränderung der Geschwindigkeit.
Verändert hat sich die Geschwindigkeit, als ich sämtlich definierte Namen im Namensmanager gelöscht hatte. Doch nun funktionierte logischerweise die dynamische Anzeige der Grafiken nicht mehr.

Ich hatte mich etwas umgelesen und stieß auf den Begriff "volatile Funktionen". aHA! Lag also hier der Fehler?
Ich ersetzte zunächst, wenn möglich, jede volatile Formel durch eine andere Möglichkeit und erstellte nochmals 464 definierte Namen mit der Formel: =Index(Quellbereich; Zellwert 1; Zellwert 2)
Ergebnis: Excel war wieder langsam (-.-)


Frage:
Gibt es eine Möglichkeit, für 450 Positionen Grafiken in Abhängigkeit von ihnen nebenstehenden Zellen so anzeigen zu lassen, dass Excel trotzdem "handlungsfähig" bleibt?

Die Art der Formel per Namensmanager scheint es ja nicht zu sein, da zwischen "=indirekt" und "=index" kein Unterschied festzustellen war.
Kann ich eventuell einen Namen so definieren, dass er sich nicht absolut auf eine Zelle bezieht, sondern relativ zu seiner Zellposition?

Ließe sich da was per VBA machen?
Ich muss hierzu gestehen, dass ich davon leider keine Ahnung habe, gern aber bereit bin, mich da ein wenig reinzufuchsen.

Wäre es sonst auch noch eine Möglichkeit, sich die 450 Grafikpositionen nicht aus der Arbeitsmappe auslesen zu lassen, sondern bei den Zellwerten einen Dateipfad "berechnen" zu lassen und dann entsprechend des Pfades die Grafik immer automatisch einzubinden? Es muss sich allerdings aktualisieren, wenn man das Anfangsdatum des Kalender ändert!


Ich hoffe, das bis hier hin der Faden nicht verloren wurde und ihr mir Denkanstöße oder direkte Lösungen geben könnt.
Unter Umständen ist es ja auch gar nicht machbar für Excel! :o)

33 Antworten

0 Punkte
Beantwortet von
Das Passwort ist muss unbedingt klein geschrieben werden.
0 Punkte
Beantwortet von
Ach menno, ich sollte mir wirklich mal angewöhnen, mir meine Codes
durchzuschauen, bevor ich sie poste. Das Stop muss raus, bzw. falls du es drin lässt,
wird der Code an dieser Stelle unterbrochen. Dann kannst du ganz einfach mit F5
fortfahren.

Gruß Mr. K.
0 Punkte
Beantwortet von
Hi Mr.K.
also das mit dem Code hat ja mal prima geklappt :o)
Ist ja wahnsinn, was man damit (VBA) alles anstellen kann..
Werde dann mal dort reinschneien. Ob ichs zu 17h packe, kann ich nicht garantieren aber zwischen 17 und 17:30 sollte drin sein.
...