Werkbook defineren vanuit lijst

harolda1980

Gebruiker
Lid geworden
7 aug 2007
Berichten
488
Ik heb een scherm gemaakt, waarin alle openstaande werkboeken in een listbox gezet worden. Dan kun je kiezen met welk werkboek je wil werken. Maar nu wil ik het gekozen werkboek defineren.

Zodat ik handelingen aan dat werkboek kan koppelen.

TB_select is het veld waarin je kan zien welke keuze je hebt gemaakt. Daarin staat de Fullname van het werkboek.
Ik heb het ook geprobeerd met alleen Name.

Code:
Public WB_get As workbook
  wb = TB_select.Value
        Set WB_GET = wb
 
Try,
Code:
Set wb = workbooks.open(TB_select.Value)
 
Maar het werkboek is al geopend, dus:
Code:
Set wb = Workbooks(TB_select.Value)
Debug.Print wb.Sheets(1).Name
 
Onduidelijk is wat met 'werken met' bedoeld wordt
Benadering van een werkblad is overbodig en vertragend.

CSS:
with Workbooks(Listbox1)

end with
 
Dank voor de reacties alvast!

Hier nog wat meer context:
Ik heb een excel bestand waarin de code zit, met een aantal userforms.
Zodra je die opent vraagt hij met welk geopend bestand je wil werken.
Zodra je die kiest, gaat hij hier alle bewerkingen in uitvoeren.

En ik probeer dus nu dat excel bestand uit een listbox op te pakken. In de listbox geeft hij alle geopende excel bestanden weer
Zodat ik die kan vastzetten, zodat ik alle handelingen in dat excel bestand kan uitvoeren.

Aangezien de bestanden geen code kunnen en mogen bevatten, omdat ze later weer ingelezen moeten worden na de bewerking.

De volgende foutmelding krijg ik, op de tweede oplossing.


1711456546136.png
 
Wat bedoel je met de tweede oplossing?
Kun je het hoofddocument of alleen het betreffende formulier hier plaatsen?
 
Set wb = Workbooks(TB_select.Value)

Het gaan niet om een werkboek(excel bestand) specifiek.

Ik start Converter op. Na het openen van de userform
Die kijkt hoeveel open bestanden er zijn.

File2.xlsx
File3.xlsx

Deze zet hij in een listbox. Zo worden ze zichtbaar voor de gebruiker.
Die kan nu kiezen welk bestand bewerkt mag worden.

Dan moet de code weten in welke file(excel bestand) hij zijn code moet uitvoeren.
En die koppeling probeer ik te maken
 
Ah, je start converter op, mooi.
Maar ik kan Converter helaas niet opstarten.
Kijk nog eens naar de tweede vraag uit #7.
Op welke coderegel treedt genoemde fout op?
 
Nou vooruit, kijk hier eens naar (met ook de methode van snb):
 

Bijlagen

  • Converter AH.xlsm
    20,1 KB · Weergaven: 3
1. vul Listbox met een Array via de methode .List
2.voorkom 'fout'meldingen: enabled =false voor knoppen volstaat

CSS:
Private Sub UserForm_Initialize()
    For Each it In Workbooks
        c00 = c00 & vbLf & it.Name
    Next
    ListBox1.List = Split(Mid(c00, 2), vbLf)
End Sub

Private Sub ListBox1_Change()
    cmdTest2.Enabled = ListBox1.ListIndex > -1
End Sub

Private Sub cmdTest2_Click()
    With Workbooks(ListBox1.Value)
        MsgBox "Het eerste werkblad van " & ListBox1 & " is: " & .Sheets(1).Name
    End With
End Sub

Private Sub cmdRefresh_Click()
    UserForm_Initialize
End Sub
 
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan