ich hab einige dynamischeBilder in meiner Excel Datei und seitdem ich die erstellt habe ist Excel extrem langsam geworden von daher schätze ich, das es an denen liegt. Ich habe eine Dropdownliste mit verschiedenen Sachen zur Auswahl. Bei jeder Auwahl ändert sich das Bild. Das dynamische Bild ist gleich Bild01 und Bild01 enthält die Formel "=INDIREKT(Tabelle1!$B$2;1)" Die Bilder stehen in der Zelle E1;F1;G1 und in der Zelle B2 hab ich eine Wenn Funktion die sich mit der Auswahl der Dropdownliste ändert jenachdem zu E, F oder G. Ich hab eine Beispiel-Datei erstellt. Gibt es eine elegantere Lösung zu dem Problem, dass die Datei auch nicht so langsam macht?
dein XL ist nicht wegen den Bildern, sondern wegen deiner INDIREKT-Fkt. langsam geworden. Hierund auf den entsprechenden Folgeseiten findest du eine hervorragende Erklärung.
Ich denke, dass mit einem Makro deinem Problem abgeholfen werden kann. Ich selbst kann dir dabei aber mangels Kenntnissen nicht helfen. Wir haben aber genügend VBA-Spezialisten.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Hallo! Bei mir auf einem betagten Laptop ist die Datei schnell. Auch wenn es jetzt unlogisch erscheint: DEAKTIVIERE mal die Grafikbeschleunigung unter Datei, Optionen, erweitert, Anzeige Haken bei Hardwaregrafikbeschleunigung deaktivieren SETZEN.
Manche Grafiktreiber verstehen sich schlecht mit Excel.
Erfolg?
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
hier mal ein VBA-Ansatz, passend zu Deiner Upload-Datei. Das Makro kommt in das Codemodul des Tabellenblattes, wo die Formeln stehen und die Auswahl erfolgt. Ich habe hier mal die einzelnen Textboxen sichtbar bzw. unsichtbar geschaltet. Du kannst sie dann z.B. alle übereinander positionieren und brauchst sie nicht mehr einzeln irgendwohin zu tun. Siehe die Kommentare im code für weitere Erklärungen.
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'Variablendeklaration 'Variant-Array Dim arrShapes 'Integer Dim iCnt% 'Array it Namen der Textboxen 'Hinweis: Wenn z.B. die Zahl im Name Name der Textbox mit dem 'Zaehler übereinstimmt, ist kein array noetig arrShapes = Array("TextBox 3", "TextBox 5", "TextBox 6") 'Schleife ueber die Auswahleintraege For iCnt = 0 To 2 'Sichtbarschaltung der textboxen anhand der Uebereinstimmung des 'Eintragszaehlers mit der Zahl im Textboxname 'Hinweis: bei zweistelliger Anzahl ist anders vorzugehen Me.Shapes(arrShapes(iCnt)).Visible = (Left(Target.Value, 1) = iCnt + 1) 'Schleife ueber die Auswahleintraege Next End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
ich hab jetzt eine einfachere Lösung gefunden, die zwar nicht ganz perfekt ist, aber funktioniert. Ich hab den Namen mit der folgenden Funktion versehen: =INDEX(Zellen mit den Bildern;1;$A$2) In Zelle A2 ist eine Wenn-Funktion die sich mit der Dropdownliste ändert.
Die Datei hängt bisschen wenn man die Bilder ändert oder wenn man unabhängige Dropdownlisten benutzt, aber ich bin Rund um zufrieden.