Fecha automática

Tengo un amigo que esta haciendo un informe el cual van a utilizar dos personas .. El quiere que cuando ponga un dato en la columna A en la columna B de la misma fila le aparezca la fecha en que hizo el movimiento de la celda A, sin que lo pueda modificar, en caso de que el se e ... Quivoque pues que pueda utilizar como una clave para corregirlo. Espero que me haga entender y gracias por su ayuda

1 respuesta

Respuesta
1
Para poner la fecha en la columna B puedes usar el siguiente código:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        Target.Offset(0, 1).Value = Date
    End If
End Sub
Ese código debes ponerlo en la hoja donde quieras que se active la macro.
Con relación a proteger contra modificaciones, ¿puedes ser un poco más especifico?
¿Quién podrá corregir?
Complementando la respuesta anterior puedes hacer lo siguiente:
Sustituye el código anterior por:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        Target.Offset(0, 1).Value = Date
        ActiveCell.Offset(-1, 0).Select
        Selection.EntireRow.Select
        ActiveSheet.Unprotect Password:="tuclave"
        With Selection
            .Locked = True
            .FormulaHidden = False
        End With
        ActiveSheet.Protect Password:="tuclave"
        ActiveCell.Offset(1, 0).Select
    End If
End Sub
Recuerda cambiar la clave por la que gustes, recuerda que este código va en el código de la hoja donde quieres que se ejecute la macro que hace el trabajo de poner la fecha y bloquear la hoja para modificaciones posteriores.
Bien, si necesitas que la celda pueda modificarse posteriormente solo por una persona especifica, entonces haz lo siguiente:
Inserta un nuevo modulo en tu libro y escribes el siguiente codigo:
Sub ModCelda()
    MsgBox "Welcome " & Environ("username") & Chr(13) & "Welcome " & Application.UserName
        Select Case Application.UserName
            Case "nombre de usuario autorizado"
                If MsgBox("Está seguro de querer modificar la celda actual?", _
                vbYesNo + vbExclamation) = vbNo Then
                    Exit Sub
                Else
                    ActiveSheet.Unprotect Password:=InputBox("Clave: ", "Ingrese su clave")
                    Exit Sub
                End If
        Case Else
                MsgBox "Ud no está autorizado para modificar esta celda" & Chr(13) & _
                "Favor de contactar a NOMBRE AUTORIZADO", vbCritical
                Exit Sub
        End Select
End Sub
Ahora en tu hoja, vas a dibujar un botón de formulario, y automáticamente te abrirá una ventana donde te pide indicar la macro que vas a asociar a ese botón, selecciona la macro ModCelda
Y es todo, con ello debe funcionar a la perfección.
Avisa si te funciona.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas