Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

100 Steuerelemente Datei extrem langsam

Forumthread: 100 Steuerelemente Datei extrem langsam

100 Steuerelemente Datei extrem langsam
22.09.2015 09:39:36
Martin
Hallo,
ich habe im Rahmen meiner Bachelorarbeit ein Excel Tool erstellt, dass knapp 100 Steuerelemente beinhaltet. Nun muss ich feststellen, dass wenn der Rechner nicht gerade 24GB RAM hat und einen 6-kernigen Prozessor, dass man die Datei gar nicht öffnen kann. Kann mir jemand weiterhelfen wie ich diese Problem lösen kann? Die Deadline meiner BA ist heute Abend und ich kann nicht das ganze Tool umschreiben. Vielen Dank schon mal
Grüße
Martin

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 100 Steuerelemente Datei extrem langsam
22.09.2015 11:31:54
Daniel
Hi
schwierig da jetzt was zu sagen ohne deine Datei zu kennen.
kommt halt darauf an, was es für Steuerlemente sind und ob sie sich in einer Userform auf einem Tabellenblatt befinden.
nur mal so als Ansatz:
- Optionbutton-Gruppen kann man durch List- oder Comboboxen ersetzen und hat dann pro Gruppe nur noch ein Steuerelement
- zusammengehörende Checkboxen kann man durch Multiselect-Listboxen ersetzen
- befinden sich viele Buttons auf einem Tabellenblatt, so kann man beispielweise einzelne Zellen zu Buttons umfunktionieren, in dem man einen entsprechenden Code in das Before-DoubleClick-Event der Tabelle schreibt. Dieses wird durch einen Doppleklick auf eine Zelle ausgelöst und man über TARGET abfragen, welche Zelle geklickt wurde und dann entsprechend im Code weiterverfahren.
mit der gleichen Methode kann man beispielsweise auch Zeilenbezogene Checkboxen in einer Tabelle ersetzen, in dem man bei Doppelklick auf die Zelle in dieser Zelle zwischen WAHR und FALSCH wechselt.
Gruß Daniel

Anzeige
AW: 100 Steuerelemente Datei extrem langsam
22.09.2015 13:01:41
Martin
Hallo,
vielen Dank für die Antwort.
Bei den Active X Steuerelementen handelt es sich um CommandButtons. Wenn man de CommandButton anklickt verändert er die Farbe und es wird ein JPG angezeigt. Klickt man den Button erneut setzt er die Farbe wieder zurück und das JPG verschwindet wieder.
Hilft das bei der Fragestellung weiter? Evtl. das mit den Zellen als Buttons...
Hier noch der Code eines Command Buttons:
Private Sub CommandButton1_Click()
Image1.Visible = Not Image1.Visible
If CommandButton1.BackColor = 969696 Then
CommandButton1.BackColor = 333333
Else
CommandButton1.BackColor = 969696
End If
End Sub

Private Sub CommandButton1_Click()
Image1.Visible = Not Image1.Visible
If CommandButton1.BackColor = 969696 Then
CommandButton1.BackColor = 333333
Else
CommandButton1.BackColor = 969696
End If
End Sub
Grüße und Danke
Martin

Anzeige
AW: 100 Steuerelemente Datei extrem langsam
22.09.2015 13:16:00
Daniel
Hi
deine Buttons kannst du im prinzp durch folgenden Code ersetzen.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Bild As Object
Select Case Target.Address(0, 0)
Case "A1": Set Bild = Image1
Case "A2": Set Bild = Image2
Case "A3": Set Bild = Image3
Case Else: Set Bild = Nothing
End Select
If Not Bild Is Nothing Then
Bild.Visible = Not Bild.Visible
Target.Interior.Color = IIf(Bild.Visible, 969696, 333333)
Cancel = True
End If
End Sub
in der Case-Liste weist du jedem Bild die Zelle zu, die für das Bild zuständig ist, dh du musst für jedes Bild so eine Zeile anlegen (hier für Image1 bis Image3) und die zuständige Zelle zuweisen.
wenn die Datei wegem der vielen Bilder langsam ist, kann ich dir auch ncht helfen.
Gruss Daniel

Anzeige
AW: 100 Steuerelemente Datei extrem langsam
22.09.2015 13:19:05
Rudi
Hallo,
ich glaube nicht, dass es die Steuerelemente sind. Eher die Images.
Eine leere Datei mit 100 Commandbuttons belegt gerade mal 234kB.
Gruß
Rudi

noch eine Anmerkung
22.09.2015 15:35:24
Rudi
Hallo,
ein Bild (GIF, 96,5 kB) als Grafik in eine leere Mappe eingefügt ergibt eine Dateigröße von 109 kB.
Weist man das gleiche Bild der Picture-Eigenschaft eines Image-Controls zu, ergibt sich eine Dateigröße von 1.450 kB. Das mehr als 13-fache.
JPEG 1.003 kB -&gt 1.015 kB/ 10.589 kB.
Jedes Bild in einem Image-Control verbrät also etwa ein 10-faches seiner eigenen Größe an Speicherplatz.
Gruß
Rudi

Anzeige
AW: noch eine Anmerkung
22.09.2015 17:15:30
Martin
Jetzt wird mir einiges klar Rudi. Deshlab bringt auch die Komprimieerung der Bilddateien nahezu nichts. Ich bin hier wirklich am verzweifeln und schlage mir die Nächte und Tage um die Ohren.
Kann man es denn ohne Image Control lösen?
Grüße
Martin

AW: noch eine Anmerkung
22.09.2015 17:22:06
Martin
Wäre es denn besser wenn ich die Bilder einfach als Bild einfüge und dann ansteuere anstelle eines Bild-Steuerelements?
Aber wie kann ich das Bild dann ansteuern?
Private Sub CommandButton1_Click()
Image1.Visible = Not Image1.Visible                   'Was muss in dieser Zeile dann stehen? _
If CommandButton1.BackColor = 969696 Then
CommandButton1.BackColor = 333333
Else
CommandButton1.BackColor = 969696
End If
End Sub
Danke
Grüße
Martin

Anzeige
AW: noch eine Anmerkung
22.09.2015 17:38:36
Rudi
Hallo,
1. Ja.
2. Shapes("Grafik 1").Visible = Not Shapes("Grafik 1").Visible
Gruß
Rudi
;
Anzeige
Anzeige

Infobox / Tutorial

100 Steuerelemente in Excel: Leistung optimieren


Schritt-für-Schritt-Anleitung

  1. Identifiziere die Steuerelemente: Überprüfe, welche Art von Steuerelementen du verwendest. In Martins Fall handelt es sich um CommandButtons und Image-Controls.

  2. Reduziere die Anzahl der Steuerelemente: Ersetze mehrere Steuerelemente durch List- oder ComboBoxen. So kannst du die Anzahl der Steuerelemente erheblich reduzieren.

  3. Nutze Zellen als Buttons: Verwende den BeforeDoubleClick-Ereigniscode, um Zellen in Buttons zu verwandeln. Hier ein Beispielcode:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Dim Bild As Object
        Select Case Target.Address(0, 0)
            Case "A1": Set Bild = Image1
            Case "A2": Set Bild = Image2
            Case "A3": Set Bild = Image3
            Case Else: Set Bild = Nothing
        End Select
        If Not Bild Is Nothing Then
            Bild.Visible = Not Bild.Visible
            Target.Interior.Color = IIf(Bild.Visible, 969696, 333333)
            Cancel = True
        End If
    End Sub
  4. Ersetze Image-Controls durch Shapes: Statt Image-Controls zu verwenden, füge Bilder direkt ein und steuere sie über Shapes. Beispiel:

    Private Sub CommandButton1_Click()
        Shapes("Grafik 1").Visible = Not Shapes("Grafik 1").Visible
        If CommandButton1.BackColor = 969696 Then
            CommandButton1.BackColor = 333333
        Else
            CommandButton1.BackColor = 969696
        End If
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Excel öffnet sich extrem langsam.

    • Lösung: Überprüfe die Anzahl der Steuerelemente und ersetze sie durch leichtere Alternativen wie Shapes oder Zellen.
  • Fehler: Die Datei benötigt zu viel RAM.

    • Lösung: Überlege, ob du im Excel mehr RAM zuweisen kannst oder die Anzahl der Bilder reduzierst.
  • Fehler: Bilder sind in Image-Controls zu groß.

    • Lösung: Verwende die Picture-Eigenschaft von Shapes, um die Dateigröße zu senken.

Alternative Methoden

  • Verwendung von Shapes: Statt der Image-Controls kannst du Shapes in Excel verwenden. Sie benötigen weniger Speicherplatz und machen die Datei schneller.

  • Kombination von Zellen und Formeln: Nutze Formeln, um die Sichtbarkeit von Zellen zu steuern, anstatt viele Steuerelemente zu verwenden.


Praktische Beispiele

  • Beispiel 1: Verwende einen CommandButton, um Bilder anzuzeigen. Der Code könnte so aussehen:

    Private Sub CommandButton1_Click()
        Shapes("Bild1").Visible = Not Shapes("Bild1").Visible
    End Sub
  • Beispiel 2: Ersetze Checkboxen durch eine Multiselect-Listbox. So kannst du die Interaktivität erhöhen und die Anzahl der Steuerelemente verringern.


Tipps für Profis

  • Bilder komprimieren: Komprimiere die Bilder vor dem Einfügen in Excel. Das kann die Dateigröße und die Ladezeiten erheblich reduzieren.

  • Vermeide ActiveX-Steuerelemente: Wenn möglich, verwende Standard-Steuerelemente, da diese in der Regel schneller und stabiler sind.

  • Optimierung durch Makros: Automatisiere Routineaufgaben mit Makros, um die Performance zu steigern.


FAQ: Häufige Fragen

1. Welche Excel-Version wird benötigt?
Es wird empfohlen, eine aktuelle Version von Excel zu verwenden, um die besten Ergebnisse zu erzielen.

2. Wie kann ich Excel mehr RAM zuweisen?
Du kannst Excel mehr RAM zuweisen, indem du in den Optionen die Berechnungsoptionen auf "Manuell" setzt und unnötige Add-Ins deaktivierst.

3. Was tun, wenn die Datei immer noch langsam ist?
Überprüfe die Dateigröße, reduziere die Anzahl der Steuerelemente und optimiere die Bilder.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige