VBA " out of memory"

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Sr Juan
  • Registratie: Maart 2002
  • Laatst online: 08-10 03:08

Sr Juan

7 uur later dan bij jou in NL

Topicstarter
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)
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

Alle reacties


Acties:
  • 0 Henk 'm!

  • Sr Juan
  • Registratie: Maart 2002
  • Laatst online: 08-10 03:08

Sr Juan

7 uur later dan bij jou in NL

Topicstarter
Mildpower schreef op dinsdag 11 februari 2020 @ 00:07:

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)


[/code]
Ik denk dat ik het al gevonden heb, ik ben een .value vergeten in de T_ARRENDADOR!

Op dit moment geen meldingen meer :)

El trago de mezcal, como lo senos de las mujeres, uno es insuficiente, tres son demasiados