• 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.

Userform met meerdere tabbladen

Status
Niet open voor verdere reacties.

Puntdroad123

Gebruiker
Lid geworden
22 aug 2016
Berichten
30
Hallo,

Ben voor mijn werk bezig met een registratie systeem. Nu werkt het userform al aardig, maar kan ik het volgende nog niet voor elkaar krijgen.
Per klant kunnen er 6 identieke tabbladen ingevuld worden. Het kan het bij klant A zijn dat het er 2 worden en bij klant B bijvoorbeeld 4.
Hoe kan ik deze gevulde tabbladen ook opslaan en verwerken in onderstaande code (voorbeeld van tabblad 1).
Alvast bedank voor het meedenken!!


Private Sub Opslaan_click()
'KLAAR
Dim Irow As Long
Dim ws As Worksheet
Set ws = Worksheets("Verwerkte Data")


'vindt laatst gebruikte cel, ga naar de volgende rij
Irow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).row

'plaats de gegevens in de database
ws.Cells(Irow, 1).value = Me.ListBox1.value
ws.Cells(Irow, 43).value = Me.ComboBox1.value
ws.Cells(Irow, 2).value = Me.Text_Klant.value
ws.Cells(Irow, 3).value = Me.Text_Aanhef.value
ws.Cells(Irow, 4).value = Me.Text_Adres.value
ws.Cells(Irow, 5).value = Me.Text_Postcode.value
ws.Cells(Irow, 6).value = Me.Text_Woonplaats.value
ws.Cells(Irow, 7).value = Me.Text_ID.value
ws.Cells(Irow, 8).value = Me.Text_Jaar.value
ws.Cells(Irow, 9).value = Me.TextBox_1_suk.value
ws.Cells(Irow, 10).value = Me.TextBox_1_grote.value
ws.Cells(Irow, 11).value = Me.TextBox_1_kalk.value
ws.Cells(Irow, 12).value = Me.TextBox_1_aarde.value
ws.Cells(Irow, 13).value = Me.Cb_1_gbm.value
ws.Cells(Irow, 14).value = Me.Cb_1_gewas.value
 
een voorbeeldbestand en je code tussen codetags zou wel handig zijn.
 
Hoi,
Zoals SjonR al aangaf VB bestandje!
Het kan niet de bedoeling zijn dat de helpers een userform met 15 controls gaan nabouwen; dit gezegd zijnde.
De tabbladen die moeten worden ingevuld moeten ook gekozen worden. (of jij moet een heeeeel slimme excel hebben die weet, aha klant 1 nu ga ik 2 blaadjes invullen);)
In mijn code voorbeeld gaan we de sheets kiezen met een ListBox (in mijn code ListBox2 genoemd, omdat jij al een ListBox1 hebt)
Stap 1 plaats een nieuwe listbox op uw userform, noem die ListBox2 en zet Multiselect op 1.
Stap 2 plaats volgende stukje code in UserForm_Initialize
Code:
Private Sub UserForm_Initialize()
For N = 1 To ActiveWorkbook.Sheets.Count
    ListBox2.AddItem ActiveWorkbook.Sheets(N).Name
Next N
End Sub
Daarmee wordt de listbox gevuld met de tabnamen
Stap 3 vervang uw code onder de knop Private Sub Opslaan_click() door
Code:
Private Sub Opslaan_click()
Irow = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
With ListBox2
    Do Until i = .ListCount
        If .Selected(i) Then
        Sheets(.ListIndex + 1).Select
Sheets(i + 1).Cells(Irow, 1).Resize(, 14) = Array(ListBox1.Value, Text_Klant.Value, Text_Aanhef.Value, Text_Adres.Value, _
Text_Postcode.Value, Text_Woonplaats.Value, Text_ID.Value, Text_Jaar.Value, TextBox_1_suk.Value, _
TextBox_1_grote.Value, TextBox_1_kalk.Value, TextBox_1_aarde.Value, Cb_1_gbm.Value, Cb_1_gewas.Value)
Sheets(i + 1).Cells(Irow, 43) = ComboBox1.Value
        End If
        i = i + 1
    Loop
    End With
en declareer helemaal bovenaan uw varabelen
Code:
Dim Irow As Long,N As Long
Dim i As Integer
vbtje in bijlage
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan