Ayuda con error en tiempo de ejecución '-2147417848 (80010108)'

Denunciar
Message postés
1
Date d'inscription
martes, 8 de junio de 2021
Estatus
Miembro
Última intervención
martes, 8 de junio de 2021
-
Hola a todos, gracias por leer este post.
Tengo un documento Excel que hice para controlar mis tareas y subtareas diarias, las cuales voy agregando (con un userform) y las voy almacenando, mediante algunas macros, en listas con nombres definidos. De tal forma, en otra hoja utilizo dichas listas en forma desplegable y relacionadas entre si.

El año pasado estuve usando una primera versión de dicha planilla y siempre fue muy estable y solo una vez en todo un año me dio un error menor que al cerrar y volver a abrir el documento no volvió a molestar nunca mas. Sin embargo, luego de actualizar mi documento y haber añadido algunas otras macros, de forma intermitente y casi aleatoria me aparece el siguiente error al añadir una nueva tarea:


Lo extraño es que solo ocurre cada que agrego unas 3 a 5 nuevas tarea, luego si cierro el documento, se reinicia Excel y me sale una hoja en blanco, luego cierro el esa hoja en blanco, vuelvo a abrir el documento y me deja agregar tareas sin problemas, hasta que unas 3 a 5 tareas después nuevamente aparece el mismo error.
El depurador me envía a esta línea (la cual estoy casi seguro que no tiene ningún problema porque ya la usaba en la anterior versión de mi Excel):

Dejo adjunto el documento Excel y aquí el código por si alguien puede ayudarme por favor:
Public Sub Registrar_Tarea()

'validaciones para que sea mas rapida la macro
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False

If Range("A4").Value = Empty Then 'registro de la primera tarea

'Registramos la primera tarea
Range("A4").Value = 1
Numero_Tarea = 1
Range("B4").Value = Nombre_Tarea
Fecha_Tarea = DateValue(Now)
Range("C4").Value = Fecha_Tarea
Range("D4").Value = Prioridad
With Range("D4").Validation 'para que salga la lista desplegable de Prioridad
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Prioridades"
End With
Range("E4").Value = Info_extra_Tarea
Range("F4").Value = Estado
With Range("F4").Validation 'para que salga la lista desplegable de estado
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Estado_de_tarea"
End With

'Creamos la primera subtarea
Range("I3").Value = Nombre_Tarea
Range("I2").Value = 1
Range("I4").Value = "NA"

'Damos formato a las celdas
'Celda nombre de tarea
With Range("I3").Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
With Range("I3").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("I3").Font.Bold = True
'Celda numero de tarea
With Range("I2").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
'Celda subtarea
With Range("I4").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With

'Creamos lista con nombre definido para las subtareas de la nueva tarea agregada
ActiveWorkbook.Names.Add Name:=Nombre_Tarea, RefersTo:=Range("I4")

'Creamos lista Todas_mis_tareas
ActiveWorkbook.Names.Add Name:="Todas_mis_tareas", RefersTo:=Range("I3")

'Creo el calendario para 1 año desde la primera tarea agregada
Call Calendario_Gannt

'Agregamos la tarea al diagramma de Gannt
Call Agregar_Tarea_Gannt

'selecciono la hoja Todas
Sheets("Todas").Select

'Agrego la Unidad de medicion por defecto a la nueva tarea
Opcion_Unidad = 1
Call Agregar_Unidad

'Dejamos seleccionada la ultima tarea agregada
Range("A4").Select


ElseIf Range("A4").Value <> Empty Then 'en caso de que no sea la primera tarea

'Registramos la nueva tarea
Range("A3").End(xlDown).Offset(1, 0).Select 'identificamos la siguiente fila vacia por debajo del ultimo registro en la lista
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + 1
Numero_Tarea = ActiveCell.Value
ActiveCell.Offset(0, 1).Value = Nombre_Tarea
Fecha_Tarea = DateValue(Now)
ActiveCell.Offset(0, 2).Value = Fecha_Tarea
ActiveCell.Offset(0, 3).Value = Prioridad
With ActiveCell.Offset(0, 3).Validation 'para que salga la lista desplegable de Prioridad
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Prioridades"
End With
ActiveCell.Offset(0, 4).Value = Info_extra_Tarea
ActiveCell.Offset(0, 5).Value = Estado
With ActiveCell.Offset(0, 5).Validation 'para que salga la lista desplegable de estado de tarea
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Estado_de_tarea"
End With

'Creamos la subtarea correspondiente a la nueva tarea agregada
Range("H3").Select
Selection.End(xlToRight).Select 'identificamos la ultima lista de subtareas agregada
ActiveCell.Offset(0, 1).Value = Nombre_Tarea
ActiveCell.Offset(-1, 1).Value = Numero_Tarea
ActiveCell.Offset(1, 1).Value = "NA"

'Damos formato a las celdas
'Celda nombre de tarea
With ActiveCell.Offset(0, 1).Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
With ActiveCell.Offset(0, 1).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0
.PatternTintAndShade = 0
End With
ActiveCell.Offset(0, 1).Font.Bold = True
'Celda numero de tarea
With ActiveCell.Offset(-1, 1).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
'Celda subtarea
With ActiveCell.Offset(1, 1).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With

'Creamos lista con nombre definido para las subtareas de la nueva tarea agregada
ActiveWorkbook.Names.Add Name:=Nombre_Tarea, RefersTo:=ActiveCell.Offset(1, 1)

'Actualizamos lista Todas_mis_tareas
Range("I3").Select
ActiveWorkbook.Names.Add Name:="Todas_mis_tareas", RefersTo:=Range(Selection, Selection.End(xlToRight))

'Agregamos la tarea al diagramma de Gannt
Call Agregar_Tarea_Gannt

'selecciono la hoja Todas
Sheets("Todas").Select

'Agrego la Unidad de medicion por defecto a la nueva tarea
Opcion_Unidad = 1
Call Agregar_Unidad

'Dejamos seleccionada la ultima tarea agregada
Range("A" & Rows.Count).End(xlUp).Select

End If

'validaciones para que sea mas rapida la macro
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = True
Application.CutCopyMode = False

End Sub