Formulier met listbox en tabbladnamen

Status
Niet open voor verdere reacties.

ESF

Gebruiker
Lid geworden
5 okt 2007
Berichten
7
Op een userform wil ik een lijst tonen met alle tabbladnamen van het actieve Excelbestand. Dit formulier moet het printen van grote bestanden vereenvoudigen.

Het lukt mij om de namen weer te geven met de volgende code:

Code:
Private Sub UserForm_Initialize()
    Dim WS As Worksheet
    For Each WS In ThisWorkbook.Worksheets
        
        Me.lstObjecten.AddItem WS.Name
        
    Next WS
End Sub

Ik heb over deze code maar liefst drie vragen:
1) het lukt niet om een of meerdere namen te selecteren.
2) de lijst is niet bijgewerkt wanneer er tabbladen zijn toegevoegd. Hoe kan ik ervoor zorgen dat de lijst klopt met het actieve bestand?
3) kan ik (als een soort default) alle namen selecteren zodat met CTRL enkel de namen gedeselecteerd hoeven worden.

Alvast bedankt voor de tips!

Mijn pogingen tot dusver staan in dit bestand: Bekijk bijlage Print form.xlsPrint form screendump.jpg
Erik
 
1. Dit komt omdat je listbox zich in het frame bevindt.
Oplossing: Verwijder de huidige listbox en maak een nieuwe aan buiten het frame, met dezelfde naam als de huidige listbox
2. Dit komt omdat je het userform verbergt, dus wordt het niet verwijdert uit het geheugen en wordt het niet opnieuw geïnitialiseert als je het terug opent.
Oplossing: Unload het userform na gebruik of herinitialseer het bij het opnieuw activeren
3.Onderstaande code selecteerd alle items in je listbox bij het openen
Code:
Private Sub UserForm_Initialize()
    Dim WS As Worksheet
    For Each WS In ThisWorkbook.Worksheets
        Me.lstObjecten.AddItem WS.Name
    Next WS
    lstObjecten.Enabled = False
     Dim x As Integer
        For x = 0 To lstObjecten.ListCount - 1
            If lstObjecten.Selected(x) = False Then
                lstObjecten.Selected(x) = True
            End If
        Next
End Sub
 
Bedankt Rudi voor de uitleg!

Ik had de listbox in het frame omdat ik het gelijk met de overig opties wilde activeren. Nu het los staat, kan ik inderdaad een tabnaam selecteren maar nu kom ik bij het volgende euvel:

A) bij het aanklikken van 'alle objecten' zijn ze niet allemaal geselecteerd (ook niet als default).
B) ik kan niet meerdere namen selecteren met de CTRL toets ingedrukt.

Graag nog een aanwijzing voor een beginner...

Alvast bedankt!
 
Test deze eens
 
Bedankt voor de snelle reactie! Deze werkt super!
 
Zet je de vraag dan nog even op opgelost
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan