Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Wieso baut sich Userform neu auf?
zurück: leere Zeilen löschen weiter: Wert finden und Zeile ausgeben Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
ProfMoe
Im Profil kannst Du frei den Rang ändern


Verfasst am:
19. Dez 2012, 02:06
Rufname:

Wieso baut sich Userform neu auf? - Wieso baut sich Userform neu auf?

Nach oben
       Version: Office 2010

Hallo zusammen,

folgende Frage ist rein theoretischer Natur und wird in der Praxis kaum Relevanz haben. Dennoch interessiert es mich.

Es geht um eine Userform mit sehr vielen Controls (einige tausend).
Entfernt man von dieser eine der Controls, baut sich die Userform komplett neu auf.

Bei mir macht sich das derart bemerkbar, dass mein Rechner zur Darstellung einige Sekunden braucht. Enterne ich nun eine der Controls, kann ich beobachten, dass zunächst eine komplett leere UF dargestellt wird, die sich erst nach und nach wieder mit den noch verbleibenden Controls füllt.

Als Beispiel folgender Aufbau:

Allgemeines Modul:
Code:

Option Explicit
Public standardButton As MSForms.CommandButton
Public klassenarray() As clsTest


Klassenmodul "clsTest":
Code:

Option Explicit

Public WithEvents neuerButton As MSForms.CommandButton


Public Sub neuerButton_Click()
   
    Dim id As Long
    id = CLng(Replace(neuerButton.Name, "Button", ""))
       
    UserForm1.Controls.Remove (neuerButton.Name)
    Set klassenarray(id) = Nothing
End Sub



Userform "Userform1":
Code:

Option Explicit

Private Sub UserForm_Initialize()

Me.Width = Application.Width
Me.Height = Application.Height


Dim i As Long

Dim anzahlButtons As Long
anzahlButtons = 2000
ReDim klassenarray(1 To anzahlButtons)

Dim kantenlänge As Long
kantenlänge = 20

Dim spalten As Long
spalten = WorksheetFunction.RoundDown(Me.Width / kantenlänge, 0)

For i = 1 To anzahlButtons
    Set standardButton = Me.Controls.Add("Forms.CommandButton.1", "Button" & i)
    Set klassenarray(i) = New clsTest
    Set klassenarray(i).neuerButton = standardButton
   
    With standardButton
        .Width = kantenlänge
        .Height = kantenlänge
        .Left = ((i - 1) Mod spalten) * kantenlänge
        .Top = WorksheetFunction.RoundDown((i - 1) / spalten, 0) * kantenlänge
    End With
Next i
   

End Sub



Kann mir jemand erklären, wieso Excel ein derartiges Verhalten zeigt? Und wie könnte man das beheben?

LG
ProfMoe

PS: Bei schnellen Rechnern evtl. die Buttonzahl hochschrauben - bei langsamen runter.
Kuwe
Excel-Anwender mit VBA


Verfasst am:
19. Dez 2012, 10:58
Rufname: Uwe


AW: Wieso baut sich Userform neu auf? - AW: Wieso baut sich Userform neu auf?

Nach oben
       Version: Office 2010

Hallo,

das ist wohl einfach so, dass nach Entfernen eines Controls alles neu gezeichnet wird.

Alternativ kannst Du ja das Element unsichtbar machen.

UserForm1
Code:
Option Explicit

Dim KlassenArray() As New clsTest

Private Sub UserForm_Initialize()

Me.Width = Application.Width
Me.Height = Application.Height

Dim anzahlButtons As Long
Dim i As Long
Dim Kantenlaenge As Long
Dim Spalten As Long
Dim standardButton As MSForms.CommandButton

anzahlButtons = 2000
ReDim KlassenArray(1 To anzahlButtons)

Kantenlaenge = 20
Spalten = WorksheetFunction.RoundDown(Me.Width / Kantenlaenge, 0)

For i = 1 To anzahlButtons
    Set standardButton = Me.Controls.Add("Forms.CommandButton.1", "Button" & i)
    With standardButton
        .Width = Kantenlaenge
        .Height = Kantenlaenge
        .Left = ((i - 1) Mod Spalten) * Kantenlaenge
        .Top = WorksheetFunction.RoundDown((i - 1) / Spalten, 0) * Kantenlaenge
        .TakeFocusOnClick = False
    End With
    Set KlassenArray(i).neuerButton = standardButton
Next i

End Sub


clsTest
Code:
Option Explicit

Public WithEvents neuerButton As MSForms.CommandButton

Public Sub neuerButton_Click()
  neuerButton.Visible = False
End Sub

_________________
Gruß Uwe
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: 12 werte summieren dann von neu beginnen 2 Gast 400 14. Okt 2010, 12:31
werni 12 werte summieren dann von neu beginnen
Keine neuen Beiträge Excel Formeln: Wieso funktioniert das nicht? 4 @home 187 01. Jul 2010, 18:57
neopa Wieso funktioniert das nicht?
Keine neuen Beiträge Excel Formeln: Fkt. Blatt schützen inaktiv - wieso? 4 Marmar77 3773 23. März 2010, 13:36
Gast Fkt. Blatt schützen inaktiv - wieso?
Keine neuen Beiträge Excel Formeln: Namen neu ausgeben (diesmal ohne Mehrfachnennungen) 13 skordel 2730 04. März 2010, 09:09
Gast Namen neu ausgeben (diesmal ohne Mehrfachnennungen)
Keine neuen Beiträge Excel Formeln: Neu berechnen bringt wechselnde Ergeb. ohne Datenänd. 2 fortuna_blue 383 22. Feb 2010, 15:02
fortuna_blue Neu berechnen bringt wechselnde Ergeb. ohne Datenänd.
Keine neuen Beiträge Excel Formeln: NEU Bitte letzten Beitrag lesen... SVERWEIS 11 Kiamolo 1014 15. Feb 2010, 13:09
Kiamolo NEU Bitte letzten Beitrag lesen... SVERWEIS
Keine neuen Beiträge Excel Formeln: Werte aus userform auslesen 1 Bergi591980 1539 10. Jan 2010, 06:35
anubis2k5 Werte aus userform auslesen
Keine neuen Beiträge Excel Formeln: nach Formelausgabe ein Name versetzt. wieso? 6 Höttl Wilfried 313 18. Aug 2009, 20:41
Höttl Wilfried nach Formelausgabe ein Name versetzt. wieso?
Keine neuen Beiträge Excel Formeln: Makro Text aus "Textbox" löschen neu Eingabe durch 0 Commander05 2241 06. Aug 2009, 16:20
Commander05 Makro Text aus "Textbox" löschen neu Eingabe durch
Keine neuen Beiträge Excel Formeln: wieso geht das nicht? 10 Gast 289 03. Jun 2009, 10:55
< Peter > wieso geht das nicht?
Keine neuen Beiträge Excel Formeln: neu zählen wenn grenze erreicht 6 hans-peter 700 18. Dez 2008, 18:46
Gast neu zählen wenn grenze erreicht
Keine neuen Beiträge Excel Formeln: Durchschnitt; Zelle bei Eingabe eines Wertes neu berechnen. 4 Tob-y 1511 12. Sep 2008, 16:04
Tob-y Durchschnitt; Zelle bei Eingabe eines Wertes neu berechnen.
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Dreamweaver Forum