Listbox: Abmessungen während Laufzeit ändern ???

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

Betrifft: Listbox: Abmessungen während Laufzeit ändern ??? von: Adi
Geschrieben am: 18.02.2005 17:43:15

Hi zusammen, bin wieder da.

Wäre froh, wenn Ihr mir einen Tipp geben könntet. In nachfolgendem Code soll die Höhe der ListBox zur Laufzeit berechnet und festgelegt werden. Tut's aber nicht. Wenn ich mir 'nen Halt einbaue und in der VBA-Umgebung schrittweise durchgehe, klappt's. ????
Hat jemand 'ne Idee?
[Wenn ich Dummy-Elemente einbaue, klappt's jedes zweite Mal?????]

D a n k e i m V o r a u s .



Private Sub UserForm_Initialize()
'------ Liste der zu druckenden Blätter -------------- Anf
    Dim DruckListArray()
    zu_drucken_zählen = 0
    
    'relevante zu druckende Blätter zusammenstellen
    For BlattNr = 1 To ActiveWorkbook.Worksheets.Count
        Set CurrentSheet = ActiveWorkbook.Worksheets(BlattNr)
        If Application.CountA(CurrentSheet.Cells) <> 0 And _
            CurrentSheet.Visible Then
            SheetCount = SheetCount + 1
                        
            ReDim Preserve DruckListArray(1 To SheetCount)
            DruckListArray(SheetCount) = CurrentSheet.Name
        End If
    Next BlattNr
    
    DruckDialog.SeitenListBox.List() = DruckListArray
    
    If SheetCount > 12 Then     '12 Einträge passen ins Entwurfsdialogfenster
        DruckDialog.Height = DruckDialog.Height + (SheetCount - 12) * 13
    End If
    If DruckDialog.Height > 406.05 Then    '406.05 ist bei Auflösung 600*800 maximal
        DruckDialog.Height = 406.05
    End If
    
    
    'geht nicht: DruckDialog.SeitenListBox.Height = DruckDialog.Height - 46
    SeitenListBox.Height = DruckDialog.Height - 46
        'Trick, sonst wird SeitenListBox nicht korrekt dargestellt
        kannwegListBox.Visible = False     'Dummy
        kannwegListBox.Visible = True      'Dummy
        kannwegListBox.Visible = False     'Dummy
    DruckDialog.AbbrechenCommandButton.Top = DruckDialog.Height - 55
    DruckDialog.OKCommandButton.Top = DruckDialog.Height - 55
'------ Liste der zu druckenden Blätter -------------- End
'------ aktueller Drucker ---------------------------- Anf
    aktuellerDrucker = Application.ActivePrinter
        'suche Position von "auf" in Druckerbezeichnung
        aufPos = InStr(1, aktuellerDrucker, "auf")
        aktuellerDrucker = Left(aktuellerDrucker, aufPos - 1)
    If Len(aktuellerDrucker) > 20 Then aktuellerDrucker = Left(aktuellerDrucker, 17) + "..."
    DruckDialog.aktuellerDruckerLabel = aktuellerDrucker
'------ aktueller Drucker ---------------------------- End
End Sub



OK: Userbild

nicht OK:
Bild


Betrifft: AW: Listbox: Abmessungen während Laufzeit ändern ??? von: Reinhold
Geschrieben am: 18.02.2005 17:57:09

Hallo Adi,

versuch doch mal!

me.repaint

um das Neuzeichen zu erzwingen!

Grüße Reinhold


Bild


Betrifft: : Listbox: Abmessungen während Laufzeit ändern ??? von: Adi
Geschrieben am: 18.02.2005 18:27:14

Hallo Reinhold,

vorab Danke für die Antwort.

zumindest "DruckDialog.Repaint" hatte ich versucht. [War unprofessionell von mir, dass ich's nicht erwähnt hatte.] Z.Z. klappt's übrigends mehrfach hintereinander. Ich hasse solche Effekte.

Any further idea?

Dir Reinhold und allen Forumsbeteiligten ein schönes Wochenende
Gruß Adi


Bild


Betrifft: AW: : Listbox: Abmessungen während Laufzeit ändern ??? von: Reinhold
Geschrieben am: 18.02.2005 18:33:08

Hallo,

ich hatte mal ein Problem mit eine label, das bei gewissen Systemkonf. sich "dynamisch" nicht ändern ließ.
Funkt hat's dann, als ich vor dem Setzen des Labels ein DoEvents aufgerufen hatte.

Warum das so sein mußte, hab' ich nie herausgefunden!

Auch schönes WE

Reinhold


Bild


Betrifft: gelöst. Listbox: Abmessungen während Laufzeit... von: Adi
Geschrieben am: 18.02.2005 18:45:42

Danke Dir.
Stimmt, DoEvents kommt mir bei derartigen Problem(ch)en auch irgendwie bekannt vor.
"Kann's" jetzt gerade nicht testen, weils gerade tut, was es soll.?????
Aber spätestens, wenn ich's x-fach verteilt habe, wird's wieder auftreten ;-)
Und trotzdem lieb' ich mein Excel.

Danke Dir nochmals.


Bild


Betrifft: DoEvents war definitiv die Lösung (o.T.) von: Adi
Geschrieben am: 22.02.2005 08:59:37

o.T.


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Listbox: Abmessungen während Laufzeit ändern ???"