Foutmelding bij verwerking Userform

Status
Niet open voor verdere reacties.

JanBG

Verenigingslid
Lid geworden
30 aug 2017
Berichten
942
Hallo,

Ik krijg bij het verwerken van Userform in een Excelbestand de volgende foutmelding: "kan de methode of het gegevenslid niet vinden". De fout wordt aangegeven in "Private Sub CommandButton2_Click()", bij "DataBodyRange(Userform1.ListIndex + 1, 2).

Dit is de code:
Code:
Private Sub CommandButton1_Click()
Dim c As Control
    For Each c In Me.Controls
        Select Case TypeName(c)
            Case "TextBox", "Combobox"
                c.Value = ""
            Case "OptionButton", "CheckBox"
                c.Value = False
        End Select
    Next

End Sub
Private Sub UserForm1_Initialize()

With Sheets("Boekingslijst").ListObjects(1)
    .Resize Range(.Range.Cells(1).Address).Resize(.Parent.Cells(Rows.Count, .Range.Cells(1).Column).End(xlUp).Row - .Range.Cells(1).Row + 1, .Range.Columns.Count)
    If .ListRows.Count > 0 Then Userform1.List = .DataBodyRange.Columns(3).Resize(, 22).Value
    kopUserForm1.List = .HeaderRowRange.Resize(, 22).Value
End With

End Sub
Private Sub UserForm()

Dim i As Integer

i = Me.Userform1.ListIndex
Me.Userform1.Selected(i) = True

Me.TextBox1.Value = Me.Userform1.Column(3, i)
Me.TextBox2.Value = Me.Userform1.Column(4, i)
Me.ListBox1.Value = Me.Userform1.Column(5, i)
Me.ListBox2.Value = Me.Userform1.Column(6, i)
Me.ListBox3.Value = Me.Userform1.Column(7, i)
Me.TextBox3.Value = Me.Userform1.Column(8, i)
Me.TextBox4.Value = Me.Userform1.Column(9, i)
Me.TextBox5.Value = Me.Userform1.Column(20, i)
Me.TextBox6.Value = Me.Userform1.Column(21, i)
Me.TextBox7.Value = Me.Userform1.Column(22, i)

End Sub

Private Sub CommandButton2_Click()
Sheets("Boekingslijst").ListObjects(1).DataBodyRange(Userform1.ListIndex + 1, 2).Resize(, 22) = Array(TextBox1, TextBox2, ListBox1, ListBox2, ListBox3, TextBox3, TextBox4, TextBox5, TextBox6, TextBox7)

Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.ListBox1.Value = ""
Me.ListBox2.Value = ""
Me.ListBox3.Value = ""
Me.TextBox3.Value = ""
Me.TextBox4.Value = ""
Me.TextBox5.Value = ""
Me.TextBox6.Value = ""
Me.TextBox7.Value = ""

Userform1.List = Sheets("Boekingslijst").ListObjects(1).DataBodyRange.Columns(3).Resize(, 22).Value

End Sub
Private Sub CommandButton3_Click()
Unload Me
End Sub


Private Sub UserForm_Click()
Userform1.Show
End Sub

En dit is een voorbeeldbestand:
Bekijk bijlage voorbeeld.xlsm

Ik zie niet waar het in zit, hoop dat iemand anders dat wel ziet. :d
 
Er is geen object met de naam ListIndex op Userform1.

En dat is maar 1 van de meerdere dingen die qua object referenties in je code fout is.
 
Laatst bewerkt:
@edmoore,

Dank voor de feedback. Ik heb de code aangepast:

Code:
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub Shownaam_Initialize()

With Sheets("Boekingslijst").ListObjects(1)
    .Resize Range(.Range.Cells(3).Address).Resize(.Parent.Cells(Rows.Count, .Range.Cells(3).Column).End(xlUp).Row - .Range.Cells(3).Row + 1, .Range.Columns.Count)
    If .ListRows.Count > 0 Then shownaam.List = .DataBodyRange.Columns(2).Resize(, 7).Value
    kopshownaam.List = .HeaderRowRange.Resize(, 7).Value
End With

End Sub
Private Sub shownaam_Click()

Dim i As Integer

i = Me.shownaam.ListIndex
Me.shownaam.Selected(i) = True

Me.pasdatinvoer.Value = Me.shownaam.Column(3, i)
Me.pasomschrijving.Value = Me.shownaam.Column(4, i)
Me.ListBox1.Value = Me.shownaam.Column(5, i)
Me.ListBox4.Value = Me.shownaam.Column(6, i)
Me.ListBox5.Value = Me.shownaam.Column(7, i)
Me.pasinkomsten.Value = Me.shownaam.Column(8, i)
Me.pasuitgaven.Value = Me.shownaam.Column(9, i)


End Sub
Private Sub stagebew_Click()

Sheets("Boekingslijst").ListObjects(1).DataBodyRange(shownaam.ListIndex + 1, 1).Resize(, 7) = Array(pasdatinvoer, pasomschrijving, ListBox1, ListBox4, ListBox5, pasinkomsten, pasuitgaven)

Me.pasdatinvoer.Value = ""
Me.pasomschrijving.Value = ""
Me.ListBox1.Value = ""
Me.ListBox4.Value = ""
Me.ListBox5.Value = ""
Me.pasinkomsten.Value = ""
Me.pasuitgaven.Value = ""


shownaam.List = Sheets("Boekingslijst").ListObjects(1).DataBodyRange.Columns(1).Resize(, 7).Value

End Sub

Probleem dat ik nu nog heb is dat als ik het userform verwerkt, plaats het de data in rij 3, terwijl dat eigenlijk in de 1e lege rij zou moeten, dus in het voorbeeldbestand rij 5.
Heb van alles geprobeerd, maar kom er niet uit.
Suggesties?

Bekijk bijlage voorbeeld2.xlsm
 
Zo misschien?
Het is hier toch al de hele dag aan het miezeren.:(
 

Bijlagen

  • Boeking.xlsb
    183,4 KB · Weergaven: 49
Helemaal top!:thumb:

Blij dat het herfst geworden is....:confused:

edmoor, snb, gast0660 bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan