no en este momento pienso que es que el programa no me lo corre la pc con dos de ram porque si no hace una tercera con 4 y otra con 8 ram vale la pena descatacar que todas tienen win 8 y mismo office pero no me explico como ese consume tanto estoy depurando el codigo usando estos codigos
Public Sub iniciamacro() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False ActiveSheet.DisplayPageBreaks = False End Sub
Public Sub borracache() Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True ActiveSheet.DisplayPageBreaks = True Application.CutCopyMode = False End Sub
al inicio de cada macro pero no soy muy diestro y tengo un mega ciclo if que no se como depurar creeo que ese ciclo es el problem
If num_aparta = "1B" Then Worksheets("no_tocar").Activate: Range("G" & Cells.Rows.Count).End(xlUp).Offset(1).Select: ActiveCell = mes_pagar_servicios.Value: ActiveCell.Offset(0, 1) = cuanto_paga_serv.Value * (1): ActiveCell.Offset(0, 2) = pago_serv.Value * (1): ActiveCell.Offset(0, 4) = (monto_alquiler) * (1) Range("k5") = mes_pagar_servicios: Range(" k7") = Cmb_mes_a_pagar End If
If num_aparta = "1C" Then Worksheets("no_tocar").Activate: Range("M" & Cells.Rows.Count).End(xlUp).Offset(1).Select: ActiveCell = mes_pagar_servicios.Value: ActiveCell.Offset(0, 1) = cuanto_paga_serv.Value * (1): ActiveCell.Offset(0, 2) = pago_serv.Value * (1): ActiveCell.Offset(0, 4) = (monto_alquiler) * (1) Range("q5") = mes_pagar_servicios: Range(" q7") = Cmb_mes_a_pagar End If
If num_aparta = "1D" Then Worksheets("no_tocar").Activate: Range("S" & Cells.Rows.Count).End(xlUp).Offset(1).Select: ActiveCell = mes_pagar_servicios.Value: ActiveCell.Offset(0, 1) = cuanto_paga_serv.Value * (1): ActiveCell.Offset(0, 2) = pago_serv.Value * (1): ActiveCell.Offset(0, 4) = (monto_alquiler) * (1) Range(" w5") = mes_pagar_servicios: Range("w7") = Cmb_mes_a_pagar End If
No creo que sea ese ciclo. Ya te he respondido en otro lado cómo hacerlo más legible, pero ese no suele ser el problema. En condiciones normales, el ordenador no se quedará sin memoria nunca, salvo que programes un bucle infinito. Lo que tú tienes no es un bucle, por lo que antes o después saldrá de ello. Además está correctamente construido.
Te decía lo anterior porque Excel a veces da ese error cuando no encuentra un add-in que cree que debería estar ahí. La verdad es que lo de "memoria insuficiente" despista, pero quién sabe si los de Microsoft no lo han puesto ahí precisamente para despistar ;)
Comprueba si en el editor VBA, a la izquierda (te dejo imagen del mío) te aparecen cosas diferentes en ambos ordenadores.
Estás utilizando en tu macro algún add-in que tenías instalado en tu ordenador original y no lo tienes en este?
no en este momento pienso que es que el programa no me lo corre la pc con dos de ram porque si no hace una tercera con 4 y otra con 8 ram vale la pena descatacar que todas tienen win 8 y mismo office pero no me explico como ese consume tanto estoy depurando el codigo usando estos codigos
Public Sub iniciamacro()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
End Sub
Public Sub borracache()
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = True
Application.CutCopyMode = False
End Sub
al inicio de cada macro pero no soy muy diestro y tengo un mega ciclo if que no se como depurar creeo que ese ciclo es el problem
If num_aparta = "1B" Then
Worksheets("no_tocar").Activate: Range("G" & Cells.Rows.Count).End(xlUp).Offset(1).Select: ActiveCell = mes_pagar_servicios.Value: ActiveCell.Offset(0, 1) = cuanto_paga_serv.Value * (1): ActiveCell.Offset(0, 2) = pago_serv.Value * (1): ActiveCell.Offset(0, 4) = (monto_alquiler) * (1)
Range("k5") = mes_pagar_servicios: Range(" k7") = Cmb_mes_a_pagar
End If
If num_aparta = "1C" Then
Worksheets("no_tocar").Activate: Range("M" & Cells.Rows.Count).End(xlUp).Offset(1).Select: ActiveCell = mes_pagar_servicios.Value: ActiveCell.Offset(0, 1) = cuanto_paga_serv.Value * (1): ActiveCell.Offset(0, 2) = pago_serv.Value * (1): ActiveCell.Offset(0, 4) = (monto_alquiler) * (1)
Range("q5") = mes_pagar_servicios: Range(" q7") = Cmb_mes_a_pagar
End If
If num_aparta = "1D" Then
Worksheets("no_tocar").Activate: Range("S" & Cells.Rows.Count).End(xlUp).Offset(1).Select: ActiveCell = mes_pagar_servicios.Value: ActiveCell.Offset(0, 1) = cuanto_paga_serv.Value * (1): ActiveCell.Offset(0, 2) = pago_serv.Value * (1): ActiveCell.Offset(0, 4) = (monto_alquiler) * (1)
Range(" w5") = mes_pagar_servicios: Range("w7") = Cmb_mes_a_pagar
End If
esto se repite 32 veces
No creo que sea ese ciclo. Ya te he respondido en otro lado cómo hacerlo más legible, pero ese no suele ser el problema. En condiciones normales, el ordenador no se quedará sin memoria nunca, salvo que programes un bucle infinito. Lo que tú tienes no es un bucle, por lo que antes o después saldrá de ello. Además está correctamente construido.
Te decía lo anterior porque Excel a veces da ese error cuando no encuentra un add-in que cree que debería estar ahí. La verdad es que lo de "memoria insuficiente" despista, pero quién sabe si los de Microsoft no lo han puesto ahí precisamente para despistar ;)
Comprueba si en el editor VBA, a la izquierda (te dejo imagen del mío) te aparecen cosas diferentes en ambos ordenadores.
Un saludo
tengo hasta la misma vercion
Cron, te molesto porque tengo el mismo error. Los Add-in que mencionas, pueden ser imágenes insertas en UserForms?