Como utilizar menos memoria RAM al ejecutar un formulario macros en excel
Hola bueno lo que ocurre es que tengo unos formularios que al ejecutarlos la memoria ram de mi laptop se dispara hasta en ocasiones a 50 % y la maquina empieza a recalentar. Como puedo reducir la cantidad de memoria ram que utiliza mi macro?
les pego el codigo para que lo revisen
Dim campo1
Private Sub cmdsalir_Click()
Unload Me
End Sub
Private Sub CommandButton3_Click()
'copiando entradas en la hija SALIDAS
Worksheets("SALIDAS").Activate
Range("A2").Select
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(0, 0).Value = txtcodigo.Text
ActiveCell.Offset(0, 1).Value = txtproducto.Text
ActiveCell.Offset(0, 2).Value = txtcantidad.Text
ActiveCell.Offset(0, 4).Value = cboarea
ActiveCell.Offset(0, 5).Value = txtfecha.Text
'copiando en la hoja saldo
Worksheets("SALDO").Activate
Range("a2").Select
Do While ActiveCell.Value <> ""
If ActiveCell.Value = txtcodigo.Text Then
ActiveCell.Offset(0, 2).Value = txtsaldo.Text
End If
ActiveCell.Offset(1, 0).Select
Loop
Worksheets("SALIDAS").Activate
'Borrando
txtcodigo = ""
txtcantidad = ""
txtsaldo = ""
If optionbutton1.Value Then
ActiveCell.Offset(0, 3).Value = optionbutton1.Caption
End If
If OptionButton2.Value Then
ActiveCell.Offset(0, 3).Value = OptionButton2.Caption
End If
If OptionButton3.Value Then
ActiveCell.Offset(0, 3).Value = OptionButton3.Caption
End If
End Sub
Private Sub optionbutton1_Click()
If optionbutton1.Value Then
txtcodigo = ""
txtproducto = ""
txtstock = ""
txtcantidad = ""
txtsaldo = ""
cboarea.Clear
cboarea.AddItem "SALA"
cboarea.AddItem "REUSO"
cboarea.AddItem "LIMPIEZA"
End If
End Sub
Private Sub OptionButton2_Click()
If OptionButton2.Value Then
txtcodigo = ""
txtproducto = ""
txtstock = ""
txtcantidad = ""
txtsaldo = ""
cboarea.Clear
cboarea.AddItem "SALA"
cboarea.AddItem "REUSO"
cboarea.AddItem "LIMPIEZA"
End If
End Sub
Private Sub OptionButton3_Click()
If OptionButton3.Value Then
txtcodigo = ""
txtproducto = ""
txtstock = ""
txtcantidad = ""
txtsaldo = ""
cboarea.Clear
cboarea.AddItem "ADMINISTRACION"
cboarea.AddItem "ASESORIA LEGAL"
cboarea.AddItem "CONTABILIDAD"
cboarea.AddItem "MANTENIMIENTO"
cboarea.AddItem "NUTRICION"
cboarea.AddItem "PSICOLOGIA"
cboarea.AddItem "CHIMBOTE"
End If
End Sub
Private Sub txtcantidad_Change()
If Not IsNumeric(txtcantidad.Text) And _
txtcantidad.Text <> “” Then
Beep
MsgBox ("Se debe ingresar solo números")
txtcantidad.Text = ""
txtcantidad.SetFocus
End If
txtsaldo.Text = Val(txtstock.Text) - Val(txtcantidad.Text)
End Sub
Private Sub txtcodigo_Change()
'SOLO SE PUEDEN INGRESAR NUMEROS
If Not IsNumeric(txtcodigo.Text) And _
txtcodigo.Text <> “” Then
Beep
MsgBox ("Se debe ingresar solo números")
txtcodigo.Text = ""
txtcodigo.SetFocus
End If
'BUSCANDO NUMERO DE PRODUCTO
For i = 1 To 350
If txtcodigo.Text = Sheets("PRODUCTOS").Cells(i + 1, 1).Value Then
'txtreal.Text = Sheets("PRODUCTOS").Cells(i + 1, 3).Value
txtproducto.Text = Sheets("PRODUCTOS").Cells(i + 1, 2).Value
txtstock.Text = Sheets("SALDO").Cells(i + 1, 3).Value
Exit For
End If
Next
End Sub
Private Sub txtfecha_Change()
Dim fecha As Date
End Sub
Private Sub TextBox1_Change()
'Por.DAM
Application.ScreenUpdating = False
campo1 = IIf(TextBox1 = "", "", TextBox1 & "*")
filtrar
Application.ScreenUpdating = True
End Sub
Private Sub filtrar()
'Por.DAM
'filtra los datos
Set t = Sheets("temp")
t.Cells.Clear
Set h2 = Sheets("PRODUCTOS")
With h2
u = .Range("A" & Rows.Count).End(xlUp).Row
With .Range("A1:E" & u)
If campo1 <> "" Then
.AutoFilter Field:=2, Criteria1:=campo1
.Copy t.Range("A1")
Else
Me.ListBox1 = ""
End If
End With
If .AutoFilterMode Then .Range("A1").AutoFilter
'If .FilterMode Then .ShowAllData
End With
u = t.Range("A" & Rows.Count).End(xlUp).Row
If u > 1 Then
ListBox1.ColumnHeads = False
ListBox1.RowSource = t.Name & "!A2:B" & u
End If
End Sub