Excel 2007

Buenas tardes,
tengo una duda,
necesito un código para que por medio del ingreso de un dato en una celda de excel, me arroje un mensaje, es decir,
de un rango de celdas, llámense, a1, a2, a43, etc, cada vez que se ingrese un dato en estas celdas, se active una macro y me arroje un mensaje de alerta o un mensaje que yo requiera que salga,
gracias,
Respuesta
1
Private Sub Worksheet_Change(ByVal Target As Range)
datos = "A1:A200"
If Not Application.Intersect(Target, Range(datos)) Is Nothing Then
'mostramos un mensaje
MsgBox "OJO SE QUE ESTAS CAMBIANDO DATOS ", vbExclamation + vbOKOnly, "CAMPO VACIO"
Application.ScreenUpdating = True
End If
End Sub
Este código hace lo que pides puedes poner el rango hasta la fila que quieras
debes ingresarlo en el código de la hoja no en un modulo
Si te vale cierra la pregunta y si necesitas algo más dímelo
Si, muchas gracias, esa es la idea,
ahora, te la voy a explicar mejor para ver si puedo conseguir que finalice lo que empecé,
tengo un cuadro de excel, desde F5 hasta L5, donde tengo ciertos títulos en cada celda,
ahora, debajo de cada titulo hay un dato que se debe ir ingresando, celdas F6 a L5, pero si se ingresa el primero debe botar un aviso, en el cual debe avisarle a la persona que ingreso ese primer dato que debe colocar otro en la celda L5,, pero que al mismo tiempo no lo deje ingresar más datos en el resto hasta que no coloque el que le pide ingresar en la celda L5, luego si puede seguir llenando las celdas intermedias a F6 Y L5,
Espero me entiendas,
Gracias,
Aquí te paso este código sigue estos pasos.
Inserta el código en la hoja, después te sitúas en la celda F6, formato de celdas, proteger, y quitas el bloqueo
Ahora cuando introduzcas algo te aparece un mensaje aceptas y te manda a la celda L5 y te bloquea el resto de celdas introduces datos en L5 te sale otro mensaje ¡ Si quieres lo quitas ! Y te deja seleccionar desde F6 hasta L5 luego cuando introduzcas el ultimo dato en L6 te aparece otro mensaje y te bloquea todas las celdas excepto F6
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim rng As Range
If Not Intersect(Target, Range("F6")) Is Nothing Then
ActiveSheet.Unprotect
MsgBox "RELLENAR DATOS EN L5 ", vbExclamation + vbOKOnly, "CONTINUAR"
    ActiveSheet.Unprotect
    Range("G5:L6").Select
    Range("G6").Activate
    Selection.Locked = True
    Selection.FormulaHidden = False
    Range("L5").Select
    Selection.Locked = False
    Selection.FormulaHidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Range("L5").Select
ElseIf Target.Address(False, False) = "L5" Then
MsgBox "PUEDES SEGUIR"
Application.ScreenUpdating = True
  Range("G6:L6").Select
      Range("L5").Select
  ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
  ActiveSheet.Unprotect
  Range("G6:L6").Select
    Selection.Locked = False
    Selection.FormulaHidden = False
    Range("L5").Select
    Selection.Locked = False
    Selection.FormulaHidden = False
   Range("g6").Select
   ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ElseIf Target.Address(False, False) = "L6" Then
MsgBox "TERMINADO"
 Range("L5").Select
    ActiveSheet.Unprotect
    Range("G5:L6").Select
    Range("G6").Activate
    Selection.Locked = True
    Selection.FormulaHidden = False
    Range("F6").Select
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas