Mijn vraag
Ik zoek een oplossing voor mijn userform waarbij ik twee transacties heb
1 is invoeren nieuwe transactie
2 is het veranderen van oude transacties.
In Mijn Listbox staan alle transacties uit het verleden.
Nu wil ik vanuit een combox zeggen dat de listbox alleen een bepaalde categorie laat zien
Relevante software en hardware die ik gebruik
Office 365
Wat ik al gevonden of geprobeerd heb
Ik heb bijna stackoverflow en google gelezen, maar schijnbaar heb ik mijn script te moeilijk gemaakt want iedere keer krijg ik errors.
Regel 39 t/m 47 is mijn laatste poging geweest
Mijn code:
Ik zoek een oplossing voor mijn userform waarbij ik twee transacties heb
1 is invoeren nieuwe transactie
2 is het veranderen van oude transacties.
In Mijn Listbox staan alle transacties uit het verleden.
Nu wil ik vanuit een combox zeggen dat de listbox alleen een bepaalde categorie laat zien
Relevante software en hardware die ik gebruik
Office 365
Wat ik al gevonden of geprobeerd heb
Ik heb bijna stackoverflow en google gelezen, maar schijnbaar heb ik mijn script te moeilijk gemaakt want iedere keer krijg ik errors.
Regel 39 t/m 47 is mijn laatste poging geweest
Mijn code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
| Option Explicit
Dim Rng As Range, fnd As Range
Dim Ctrl As Control
Dim iRow As Long
Dim wsAE As Worksheet
Private Sub C_02_Click()
T_02.Value = C_02.Column(1)
T_18.Value = C_02.Column(11)
T_21.Value = C_02.Column(10)
T_22.Value = C_02.Column(8)
T_12.Value = C_02.Column(3)
End Sub
Private Sub T_09_Click()
T_FINAL.Value = t_09.Column(1)
End Sub
Private Sub CMB_addnew_Click()
Set wsAE = Worksheets("BALANCE")
If MsgBox("Correct entry?", vbYesNo + vbQuestion, "Check the data!") = vbNo Then Exit Sub
iRow = wsAE.Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
wsAE.Cells(iRow, 1).Resize(, 13).Value = Array(T_id.Value, C_02.Value, T_02.Value, _
T_01.Value, T_18.Value, T_21.Value, T_22.Value, T_12.Value, C_05.Value, t_09.Value, , T_04.Value, T_03.Value)
MsgBox "The new entry has been saved.", vbInformation, "Done"
For Each Ctrl In Controls
If TypeName(Ctrl) = "TextBox" Or TypeName(Ctrl) = "ComboBox" Then Ctrl.Value = ""
Next Ctrl
LB_01.ListIndex = -1
LB_01.TopIndex = 0
Call UserForm_Initialize
End Sub
Private Sub Textbox1_Change()
Dim i As Long
Dim arrList As Variant
Me.LB_01.Clear
If BALANCE.Range("A" & BALANCE.Rows.Count).End(xlUp).Row > 1 And Trim(Me.Textbox1.Value) <> vbNullString Then
arrList = BALANCE.Range("A1:A" & BALANCE.Range("A" & BALANCE.Rows.Count).End(xlUp).Row).Value2
For i = LBound(arrList) To UBound(arrList)
If InStr(1, arrList(i, 1), Trim(Me.Textbox1.Value), vbTextCompare) Then
Me.LB_01.AddItem arrList(i, 1)
End If
Next i
End If
If Me.LB_01.ListCount = 1 Then Me.LB_01.Selected(0) = True
End Sub
Private Sub CMB_change_Click()
Set wsAE = Worksheets("BALANCE")
Set Rng = wsAE.Range("A2:A" & wsAE.Cells(Rows.Count, "A").End(xlUp).Row)
Set fnd = Rng.Find(What:="*", LookIn:=SR.Value, Lookat:=SR.Value)
If LB_01.ListIndex = -1 Then
MsgBox "First choose a item in the list!", vbCritical, "Attention!"
Exit Sub
Else
If T_id = vbNullString Then
MsgBox "Customizing is not possible, no entries found", vbExclamation, "Attention!"
Exit Sub
ElseIf Not fnd Is Nothing Then
Application.EnableEvents = True
If MsgBox("Correct entry?", vbYesNo + vbQuestion, "Check the data!") = vbNo Then Exit Sub
wsAE.Cells(iRow, 1).Resize(, 13).Value = Array(T_id.Value, C_02.Value, T_02.Value, _
T_01.Value, T_18.Value, T_21.Value, T_22.Value, T_12.Value, C_05.Value, t_09.Value, , T_04.Value, T_03.Value)
MsgBox "The changes have been saved.", vbInformation, "Done"
Application.EnableEvents = True
End If
For Each Ctrl In Controls
If TypeName(Ctrl) = "TextBox" Or TypeName(Ctrl) = "ComboBox" Then Ctrl.Value = ""
Next Ctrl
LB_01.ListIndex = -1
LB_01.TopIndex = 0
Call UserForm_Initialize
End If
End Sub
Private Sub CMB_clear_Click()
For Each Ctrl In Controls
If TypeName(Ctrl) = "TextBox" Or TypeName(Ctrl) = "ComboBox" Then Ctrl.Value = ""
Next Ctrl
LB_01.ListIndex = -1
LB_01.TopIndex = 0
Call UserForm_Initialize
End Sub
Private Sub CMB_close_Click()
Unload Me
End Sub
Private Sub LB_01_change()
C_02.Value = LB_01.Column(1)
T_02.Value = LB_01.Column(2)
T_01.Value = LB_01.Column(3)
T_12.Value = LB_01.Column(7)
C_05.Value = LB_01.Column(8)
T_04.Value = LB_01.Column(11)
T_03.Value = LB_01.Column(12)
t_09.Value = LB_01.Column(9)
T_18.Value = LB_01.Column(4)
T_21.Value = LB_01.Column(5)
T_22.Value = LB_01.Column(6)
End Sub
Private Sub UserForm_Initialize()
T_id.Value = WorksheetFunction.Max([ids]) + 1
C_02.List = [datalist].Value
C_05.List = [BUoM].Value
t_09.List = Sheets("SALDOFINALPIVOT").Range("A:B").Value
T_01.Value = Now
ThisWorkbook.RefreshAll
End Sub |
El trago de mezcal, como lo senos de las mujeres, uno es insuficiente, tres son demasiados