Migración macro de excel
Publicado: Dom Dic 13, 2020 1:50 pm
				
				Buenas, un documento el cual está creado en excel y contiene una macro muy sencilla, me pasa lo siguiente:
Cuando lo abro con Calc, todo funciona perfectamente, la macro también funciona perfectamente. Modifico cualquier celda y guardo los cambios del documento. Cierro el documento y lo vuelvo a abrir. Ahora la macro ya no funciona.. No logro ver por qué está pasando.
La macro en cuestion es la siguiente:
Puedo compartir el documento con vosotros? está permitido ?
			Cuando lo abro con Calc, todo funciona perfectamente, la macro también funciona perfectamente. Modifico cualquier celda y guardo los cambios del documento. Cierro el documento y lo vuelvo a abrir. Ahora la macro ya no funciona.. No logro ver por qué está pasando.
La macro en cuestion es la siguiente:
Código: Seleccionar todo
Private Sub nuevo_tiempo_ejecucion()
    If ActiveCell.Offset(0, 1).Value <> "" Then
        ActiveCell.Offset(0, -1).Value = (Now - ActiveCell.Offset(0, 1).Value) + ActiveCell.Offset(0, -1).Value
        ActiveCell.Offset(0, 1).Value = ""
        'Resta de horas planificadas - realizadas , finalmete implementado con fórmula
            'ActiveCell.Offset(0, 3).value = Hour(ActiveCell.Offset(0, -2).value) - Hour(ActiveCell.Offset(0, -1).value)
    End If
End Sub
Sub Worksheet_Change(ByVal Target As Range)
    If Selection.Cells.Count = 1 Then
        If ActiveCell.Column = 5 Then
            If UCase(Target.Value) = "EN PROCESO" Then
                ActiveCell.Offset(0, 1).Value = Now
            ElseIf UCase(Target.Value) = "SEGUIMIENTO" Then
                nuevo_tiempo_ejecucion
            ElseIf UCase(Target.Value) = "BLOQUEADO" Then
                nuevo_tiempo_ejecucion
            ElseIf UCase(Target.Value) = "CERRADO" Then
                nuevo_tiempo_ejecucion
            ElseIf UCase(Target.Value) = "PAUSA" Then
                nuevo_tiempo_ejecucion
            End If
        ElseIf ActiveCell.Column = 2 Then
            If UCase(Target.Value) <> "" Then
                ActiveCell.Offset(-1, 1).Value = "S." & Application.WorksheetFunction.WeekNum(Date)
            End If
        End If
    End If
End Sub
Puedo compartir el documento con vosotros? está permitido ?