100 Steuerelemente Datei extrem langsam

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: 100 Steuerelemente Datei extrem langsam
von: Martin
Geschrieben am: 22.09.2015 09:39:36

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

Bild

Betrifft: AW: 100 Steuerelemente Datei extrem langsam
von: Daniel
Geschrieben am: 22.09.2015 11:31:54
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

Bild

Betrifft: AW: 100 Steuerelemente Datei extrem langsam
von: Martin
Geschrieben am: 22.09.2015 13:01:41
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

Bild

Betrifft: AW: 100 Steuerelemente Datei extrem langsam
von: Daniel
Geschrieben am: 22.09.2015 13:16:00
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

Bild

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

Bild

Betrifft: noch eine Anmerkung
von: Rudi Maintaire
Geschrieben am: 22.09.2015 15:35:24
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 -> 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

Bild

Betrifft: AW: noch eine Anmerkung
von: Martin
Geschrieben am: 22.09.2015 17:15:30
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

Bild

Betrifft: AW: noch eine Anmerkung
von: Martin
Geschrieben am: 22.09.2015 17:22:06
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

Bild

Betrifft: AW: noch eine Anmerkung
von: Rudi Maintaire
Geschrieben am: 22.09.2015 17:38:36
Hallo,
1. Ja.
2. Shapes("Grafik 1").Visible = Not Shapes("Grafik 1").Visible
Gruß
Rudi

 Bild

Beiträge aus den Excel-Beispielen zum Thema "100 Steuerelemente Datei extrem langsam"