Macro para proteger celdas con datos
Muchas gracias por su labor. He recibido mucha ayuda con sus foros. Pero tengo un problema con la siguiente macro que debe proteger las celdas con valores después de ingresarlos.
El problema que se me ha generado un bucle y se me repite el inputbox para ingresar el dato cuando solo debería pedírmelo una vez.
Les comento: desde una columna con una lista desplegable se pueden elegir nombre. Al elegir uno debería saltar el inputbox para ingresar un valor en la columna siguiente. Pero me sigue saltando el inputbox y se sigue corriendo de columnas.
¿Cómo puedo hacer que al elegir de la lista desplegable solo me salte una vez el inputbox para ingresar el valor?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim N1 As String
If Intersect(Target, Range("B1:CP150000")) Is Nothing Then
Exit Sub
Else
If Target.Value <> "" Then
Target.Select
ActiveCell.Offset(0, 1).Select
N1 = InputBox("N° de Personas")
ActiveCell.Value = N1
ActiveCell.Offset(0, 1).Select
Call Comentario
ActiveCell.Offset(0, -1).Select
ActiveSheet.Unprotect "123"
Selection.Locked = True
End If
ActiveSheet.Protect "123", DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
End If
End Sub
Dante cierto que no había considerado algo importante en mi respuesta. pero te comento que a esta línea Application.EnableEvents = False, no lo tengo bien definido para su uso, aveces lo pones al principio y en este caso dentro de una sentencia. puedes darme una mano con una aclaración por favor. en cuanto me habilitan votos valoraré tu importante aporte. - Adriel Ortiz Mangia
No te preocupes por los votos.Lo que hace enableevents=False es apagar los eventos, entonces es importante poner la sentencia antes de afectar una celda, ya que si afectas la celda y no apagas los eventos se ejecuta nuevamente el evento y entonces entra en el ciclo que menciona el usuario. Ahora, también es importante volver a activar los eventos después de afectar la celda. En tu ejemplo apagas los eventos, después tienes un If, pero si no entra al If, entonces los eventos quedan apagados y ya no se activará la macro para otra ocasión. - Dante Amor
Gracias Dante - Adriel Ortiz Mangia