• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

listbox vullen vanuit ander "gesloten" bestand

Status
Niet open voor verdere reacties.

AD1957

Verenigingslid
Lid geworden
27 feb 2016
Berichten
1.991
met onderstaande code probeer ik een listbox te vullen vanuit een gesloten bestand.
foutmelding bij openen userform: "subscript valt buiten het bereik.
Zal wel van alles fout zijn aan de code, maar ik kom gewoon niet verder.
waarschijnlijk moet het bestand eerst geopend worden, maar dan krijg ik dezelfde melding.

Code:
Private Sub UserForm_Initialize()

'Dim WB As Workbook 'openen debiteuren.xlsb
'Dim str_Path As String

    'str_Path = "C:\users\user\Desktop\BOEKHOUDLIJSTEN\debiteuren.xlsb"       
    'Set WB = Workbooks.Open(str_Path) 


ListBox1.List = Sheets("C:\Users\user\Desktop\BOEKHOUDLIJSTEN[debiteuren.xlsb]Blad1").Range("A1:D500").Value



'WB.Close
End Sub

Het betreft een zelf in elkaar gezet boekhoudprogramma waarin de lijst debiteuren nu nog gewoon op een werkblad staat.
vullen van de listbox is hierbij natuurlijk geen probleem.
Wil echter de debiteurenlijst in een apart bestand zetten zodat ik deze vanuit elk boekjaar apart kan benaderen.
Wie kan me op weg helpen.
Volgende probleem is dan natuurlijk het bijwerken van de debiteuren, maar dat is misschien de volgende vraag.
 
Probeer het zo eens
Code:
Private Sub UserForm_Initialize()
  With GetObject("C:\users\user\Desktop\BOEKHOUDLIJSTEN\debiteuren.xlsb")
    ListBox1.List = Sheets("Blad1").Cells(1).CurrentRegion.Value
    .Close 0
  End With
End Sub
 
Hallo VenA,
Eerst nog de beste wensen voor 2019
Zal de code eens gaan uitproberen.
Met deze code word de listbox iedere keer opnieuw gevuld bij het openen van de userform, waarschijnlijk gaat dat vertragend werken.

Ik had zelf nog een ander idee, Bij het openen van het "boekhoudbestand" via Workbook_open steeds de debiteuren.xlsb copieren
naar het blad in het boekhoudbestand. Zou dit misschien een betere optie zijn.?
 
userform werd netjes geopend zonder foutmelding, echter listbox niet gevuld.
de onderstaande regel van jouw voorstel vult de listbox vanuit Blad 1 van het boekhoudbestand
en niet vanuit het bestand debiteuren.xlsb
Code:
ListBox1.List = Sheets("Blad1").Cells(1).CurrentRegion.Value
Ik kan maar niet achterhalen hoe ik dit goed krijg. Mijn probeersels zal ik hier maar niet neerzetten
want die zullen waarschijnlijk lachbuien veroorzaken:d
 
Belangrijke punt.
Code:
 ListBox1.List =[SIZE=5][COLOR=#ff0000] .[/COLOR][/SIZE]Sheets("Blad1").Cells(1).CurrentRegion.Value
 
Hallo HSV,
bedankt voor de info, ga het direct proberen.
Het bijwerken van bestand debiteuren.xlsb is me al gelukt met onderstaande code
Code:
Private Sub cmdOK_Click()
Dim WB As Workbook 'openen debiteuren.xlsb in map BOEKHOUDLIJSTEN
Dim str_Path As String

    str_Path = "C:\Users\user\Desktop\BOEKHOUDLIJSTEN\debiteuren.xlsb"
    Set WB = Workbooks.Open(str_Path)
    
 [A2].Select
 If Range("A2").Value = "" Then
    Range("A2").Select
    ElseIf Range("A3").Value = "" Then
    Range("A3").Select
    Else
    Range("A1").End(xlDown).Offset(1, 0).Select
    End If

selrij = Selection.Row 'invullen nieuwe debiteur



          Cells(selrij, 1).Value = txtnaam.Value 'naam
          Cells(selrij, 3).Value = txtadres.Value 'adres
          Cells(selrij, 4).Value = txtpcwoonplaats.Value 'pcwoonplaats
          Cells(selrij, 5).Value = txttelefoon.Value 'telefoon
          Cells(selrij, 6).Value = txtemail.Value 'email
          Cells(selrij, 7).Value = txtBTWnr.Value 'btw nummer
 
[A2:G1001].Sort key1:=[A2], order1:=xlAscending, Header:=xlNo 'sorteren debiteuren
ActiveWorkbook.Save
ActiveWorkbook.Close


 txtnaam.Value = Clear 'leegmaken textboxen
 txtadres.Value = Clear
 txtpcwoonplaats.Value = Clear
 txttelefoon.Value = Clear
 txtemail.Value = Clear
 txtBTWnr.Value = Clear
 
Unload UserForm_nieuwedebiteur
Worksheets("Factuur").Select
userform_artikelen.Show
userform_debiteuren_factuur.Show


    
End Sub
 
Net die ene!!!, werkt perfect:thumb:
Heren bedankt
 
Laatst bewerkt:
Alle selects zijn overbodig. Nu met de missende punt.
Code:
Private Sub cmdOK_Click()
  Dim str_Path As String
  str_Path = "C:\Users\user\Desktop\BOEKHOUDLIJSTEN\debiteuren.xlsb"
  With Workbooks.Open(str_Path).Sheets(1)
    .Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 7) = Array(txtnaam, "", txtadres, txtpcwoonplaats, txttelefoon, txtemail, txtBTWnr)
    .Cells(1).CurrentRegion.Sort .Cells(1), , , , , , , xlYes
    .Parent.Close True
  End With
  For Each ct In Me.Controls
    If TypeName(ct) = "TextBox" Then ct.Value = ""
  Next ct
  Unload Me
End Sub
 
Hoi VenA,
zal deze code er eens inzetten.
Ben me er van bewust dat het gebruik van select niet de voorkeur heeft van de profs.
in ieder geval bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan