Mijn vraag
Ik heb een VBA script geschreven, maar ik krijg nu "out of memory" meldingen elke keer als ik de userform afsluit. Hoe krijg ik dat weg
Relevante software en hardware die ik gebruik
VBA 7.1
Office 365
Wat ik al gevonden of geprobeerd heb
Dim iRow As Integer (stond als long)
In dit stuk code was resize gezet op (,50) Nu 22.
hele VBA code
Ik heb een VBA script geschreven, maar ik krijg nu "out of memory" meldingen elke keer als ik de userform afsluit. Hoe krijg ik dat weg
Relevante software en hardware die ik gebruik
VBA 7.1
Office 365
Wat ik al gevonden of geprobeerd heb
Dim iRow As Integer (stond als long)
code:
1
2
3
4
5
| Option Explicit Dim Rng As Range, fnd As Range Dim Ctrl As Control Dim iRow As Integer Dim wsAE As Worksheet |
In dit stuk code was resize gezet op (,50) Nu 22.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Private Sub CMB_addnew_Click()
Set wsAE = Worksheets("INFO_PAGO")
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(, 22).Value = Array(C_INVENTARIO.Value, T_M2.Value, T_ARRENDADOR.Value, T_AREA.Value, T_SUELO.Value, _
C_MET.Value, T_PROP.Value, T_REF.Value, T_NOTA.Value, T_ABONO.Value, T_RAD.Value, _
T_NRAD.Value, T_NPAGO.Value, C_CONCEPTO.Value, T_CP.Value, T_TRANS.Value, T_CALLE.Value, T_COL.Value, _
T_CARGO.Value, T_PAGO.Value, NEWD.Value, ENDD.Value)
'Columns.AutoFit
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 |
hele VBA 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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
| Option Explicit
Dim Rng As Range, fnd As Range
Dim Ctrl As Control
Dim iRow As Integer
Dim wsAE As Worksheet
Private Sub C_INVENTARIO_Click()
T_AREA.Value = C_INVENTARIO.Column(1)
T_M2.Value = C_INVENTARIO.Column(3)
T_SUELO.Value = C_INVENTARIO.Column(4)
T_COL.Value = C_INVENTARIO.Column(9)
T_PROP.Value = C_INVENTARIO.Column(13)
T_ARRENDADOR.Value = C_INVENTARIO.Column(11)
T_CALLE.Value = C_INVENTARIO.Column(12)
T_CP.Value = C_INVENTARIO.Column(14)
NEWD.Value = C_INVENTARIO.Column(5)
ENDD.Value = C_INVENTARIO.Column(6)
DAYSEND.Value = C_INVENTARIO.Column(7)
T_EST.Value = C_INVENTARIO.Column(16)
End Sub
Private Sub CMB_addnew_Click()
Set wsAE = Worksheets("INFO_PAGO")
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(, 22).Value = Array(C_INVENTARIO.Value, T_M2.Value, T_ARRENDADOR.Value, T_AREA.Value, T_SUELO.Value, _
C_MET.Value, T_PROP.Value, T_REF.Value, T_NOTA.Value, T_ABONO.Value, T_RAD.Value, _
T_NRAD.Value, T_NPAGO.Value, C_CONCEPTO.Value, T_CP.Value, T_TRANS.Value, T_CALLE.Value, T_COL.Value, _
T_CARGO.Value, T_PAGO.Value, NEWD.Value, ENDD.Value)
'Columns.AutoFit
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 CMB_change_Click()
Set wsAE = Worksheets("IPSA_DATA")
Set Rng = wsAE.Range("A2:A" & wsAE.Cells(Rows.Count, "A").End(xlUp).Row)
MsgBox "First choose a item in the list!", vbCritical, "Attention!"
Exit Sub
Set wsAE = Worksheets("INFO_PAGO")
Set Rng = wsAE.Range("A2:A" & wsAE.Cells(Rows.Count, "A").End(xlUp).Row)
Set fnd = Rng.Find(What:=T_id.Value, LookIn:=xlValues, Lookat:=xlWhole)
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 = False
If MsgBox("Correct entry?", vbYesNo + vbQuestion, "Check the data!") = vbNo Then Exit Sub
wsAE.Cells(fnd.Row, "A").Resize(, 22).Value = Array(C_INVENTARIO.Value, T_M2.Value, C_INVENTARIO.Value, T_AREA.Value, T_SUELO.Value, _
C_MET.Value, T_PROP.Value, T_REF.Value, , T_NOTA.Value, T_ABONO.Value, T_RAD.Value, _
T_NRAD.Value, T_NPAGO.Value, C_CONCEPTO.Value, T_CP.Value, T_TRANS.Value, T_CALLE.Value, T_COL.Value, _
T_CARGO.Value, T_PAGO.Value, T_CP.Value, NEWD.Value, ENDD.Value)
'Columns.AutoFit
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_Click()
T_id.Value = LB_01.Column(0)
C_INVENTARIO.Value = LB_01.Column(1)
T_TRANS.Value = LB_01.Column(2)
T_ARRENDADOR = LB_01.Column(3)
T_AREA.Value = LB_01.Column(4)
T_SUELO.Value = LB_01.Column(5)
T_PROP.Value = LB_01.Column(6)
T_M2.Value = LB_01.Column(7)
T_CALLE.Value = LB_01.Column(8)
T_COL.Value = LB_01.Column(9)
T_CP.Value = LB_01.Column(10)
T_EST.Value = LB_01.Column(11)
NEWD.Value = LB_01.Column(12)
ENDD.Value = LB_01.Column(13)
C_CONCEPTO.Value = LB_01.Column(14)
T_CARGO.Value = LB_01.Column(15)
T_ABONO.Value = LB_01.Column(16)
C_MET.Value = LB_01.Column(17)
T_REF.Value = LB_01.Column(18)
T_PAGO.Value = LB_01.Column(19)
T_RAD.Value = LB_01.Column(20)
T_NRAD.Value = LB_01.Column(21)
T_NPAGO.Value = LB_01.Column(22)
T_NOTA.Value = LB_01.Column(23)
End Sub
Private Sub UserForm_Initialize()
LB_01.List = [database].Value
C_INVENTARIO.List = [datalist].Value
C_MET.List = [nouns].Value
C_CONCEPTO.List = [matgroup].Value
T_TRANS.Value = Now
End Sub |
El trago de mezcal, como lo senos de las mujeres, uno es insuficiente, tres son demasiados