Heb alles grondig getest (met beperkte data weliswaar) en alles werkt naar wens op één klein schoonheidsfoutje na...
Na het klikken op de opdrachtknop en het leegmaken van het UserForm staat de dropdown list van de eerste combobox open.
Op zich niet persé problematisch, wel lichtjes storend....
Gezien er momenteel nog niet veel data in de lijsten/tabellen staan kunnen er misschien op termijn nog bugjes optreden waarvoor ik dan vermoedelijk opnieuw hier om raad zal komen vragen
.
Dit is uiteindelijk de code geworden achter de opdrachtknop (vermoedelijk kan het korter maar op deze wijze is de code voor de verschillende onderdelen (soorten akten) voor mij duidelijker en overzichtelijker) :
Private Sub CommandButton1_Click()
If TextBox1 = "g" Then
With Sheets("IDX-geb")
i = .Range("A" & Rows.Count).End(xlUp).Offset(1).Row
.Range("A" & i).Resize(, 11) = Array(TextBox2, CDbl(TextBox3), CDbl(TextBox4), CDbl(TextBox5), ComboBox1.Text, ComboBox2.Text, ComboBox3.Text, _
ComboBox4.Text, ComboBox5.Text, ComboBox6.Text, ComboBox7.Text)
.Columns("A:K").EntireColumn.AutoFit
End With
For i = 1 To 7
Select Case Mid(Me("ComboBox" & i).Name, 9)
Case 1
If Len(Me("ComboBox" & i)) > 0 Then
With Sheets("inhoud keuzelijsten").ListObjects("plaats")
If Not IsNumeric(Application.Match(Me("ComboBox" & i), .DataBodyRange, 0)) Then
.ListRows.Add.Range = Me("ComboBox" & i)
.Range.Sort .DataBodyRange(1, 1), 1, , , , , , 1
End If
End With
End If
Case 2, 3, 6
If Len(Me("ComboBox" & i)) > 0 Then
With Sheets("inhoud keuzelijsten").ListObjects("naam")
If Not IsNumeric(Application.Match(Me("ComboBox" & i), .DataBodyRange, 0)) Then
.ListRows.Add.Range = Me("ComboBox" & i)
.Range.Sort .DataBodyRange(1, 1), 1, , , , , , 1
End If
End With
End If
Case 4, 5, 7
If Len(Me("ComboBox" & i)) > 0 Then
With Sheets("inhoud keuzelijsten").ListObjects("voornaam")
If Not IsNumeric(Application.Match(Me("ComboBox" & i), .DataBodyRange, 0)) Then
.ListRows.Add.Range = Me("ComboBox" & i)
.Range.Sort .DataBodyRange(1, 1), 1, , , , , , 1
End If
End With
End If
End Select
Next
End If
If TextBox1 = "h" Then
With Sheets("IDX-huw")
i = .Range("A" & Rows.Count).End(xlUp).Offset(1).Row
.Range("A" & i).Resize(, 16) = Array(TextBox2, CDbl(TextBox3), CDbl(TextBox4), CDbl(TextBox5), ComboBox1.Text, ComboBox2.Text, ComboBox3.Text, _
ComboBox4.Text, ComboBox5.Text, ComboBox6.Text, ComboBox7.Text, ComboBox8.Text, ComboBox9.Text, ComboBox10.Text, ComboBox11.Text, ComboBox12.Text)
ii = i + 1
If TextBox2 = "m" Then TextBox2 = "v"
.Range("A" & ii).Resize(, 16) = Array(TextBox2, CDbl(TextBox3), CDbl(TextBox4), CDbl(TextBox5), ComboBox1.Text, ComboBox8.Text, ComboBox8.Text, _
ComboBox9.Text, ComboBox10.Text, ComboBox11.Text, ComboBox12.Text, ComboBox2.Text, ComboBox4.Text, ComboBox5.Text, ComboBox6.Text, ComboBox7.Text)
.Columns("A:P").EntireColumn.AutoFit
End With
For i = 1 To 12
Select Case Mid(Me("ComboBox" & i).Name, 9)
Case 1
If Len(Me("ComboBox" & i)) > 0 Then
With Sheets("inhoud keuzelijsten").ListObjects("plaats")
If Not IsNumeric(Application.Match(Me("ComboBox" & i), .DataBodyRange, 0)) Then
.ListRows.Add.Range = Me("ComboBox" & i)
.Range.Sort .DataBodyRange(1, 1), 1, , , , , , 1
End If
End With
End If
Case 2, 3, 6, 8, 11
If Len(Me("ComboBox" & i)) > 0 Then
With Sheets("inhoud keuzelijsten").ListObjects("naam")
If Not IsNumeric(Application.Match(Me("ComboBox" & i), .DataBodyRange, 0)) Then
.ListRows.Add.Range = Me("ComboBox" & i)
.Range.Sort .DataBodyRange(1, 1), 1, , , , , , 1
End If
End With
End If
Case 4, 5, 7, 9, 10, 12
If Len(Me("ComboBox" & i)) > 0 Then
With Sheets("inhoud keuzelijsten").ListObjects("voornaam")
If Not IsNumeric(Application.Match(Me("ComboBox" & i), .DataBodyRange, 0)) Then
.ListRows.Add.Range = Me("ComboBox" & i)
.Range.Sort .DataBodyRange(1, 1), 1, , , , , , 1
End If
End With
End If
End Select
Next
End If
If TextBox1 = "o" Then
With Sheets("IDX-ovl")
i = .Range("A" & Rows.Count).End(xlUp).Offset(1).Row
.Range("A" & i).Resize(, 14) = Array(TextBox2, CDbl(TextBox3), CDbl(TextBox4), CDbl(TextBox5), ComboBox1.Text, ComboBox2.Text, ComboBox3.Text, _
ComboBox4.Text, ComboBox5.Text, ComboBox6.Text, ComboBox7.Text, ComboBox8.Text, ComboBox9.Text, TextBox18)
.Columns("A:N").EntireColumn.AutoFit
End With
For i = 1 To 9
Select Case Mid(Me("ComboBox" & i).Name, 9)
Case 1
If Len(Me("ComboBox" & i)) > 0 Then
With Sheets("inhoud keuzelijsten").ListObjects("plaats")
If Not IsNumeric(Application.Match(Me("ComboBox" & i), .DataBodyRange, 0)) Then
.ListRows.Add.Range = Me("ComboBox" & i)
.Range.Sort .DataBodyRange(1, 1), 1, , , , , , 1
End If
End With
End If
Case 2, 3, 6, 8
If Len(Me("ComboBox" & i)) > 0 Then
With Sheets("inhoud keuzelijsten").ListObjects("naam")
If Not IsNumeric(Application.Match(Me("ComboBox" & i), .DataBodyRange, 0)) Then
.ListRows.Add.Range = Me("ComboBox" & i)
.Range.Sort .DataBodyRange(1, 1), 1, , , , , , 1
End If
End With
End If
Case 4, 5, 7, 9
If Len(Me("ComboBox" & i)) > 0 Then
With Sheets("inhoud keuzelijsten").ListObjects("voornaam")
If Not IsNumeric(Application.Match(Me("ComboBox" & i), .DataBodyRange, 0)) Then
.ListRows.Add.Range = Me("ComboBox" & i)
.Range.Sort .DataBodyRange(1, 1), 1, , , , , , 1
End If
End With
End If
End Select
Next
End If
'leegmaken van alle text- en comboboxen
For Each ctrl In Me.Controls
If TypeName(ctrl) = "TextBox" Or TypeName(ctrl) = "ComboBox" Then
ctrl.Value = ""
End If
Next ctrl
TextBox1.SetFocus
End Sub
Hartelijk dank aan Veerj en Albert voor de uitgebreide hulp.
groetjes,
BlackDevil