Validar que se registre una solicitud sin celdas vacías Excel Macros

Tengo un excel donde me envían solicitudes de atención. Quiero que ese excel valide si las celdas se han llenado correctamente.

Es decir: Yo tengo 10 columnas en mi excel, de las 10 yo solo necesito validar la columna 1,2,3,4,6,7,8,10

Esta validación se deje ejecutar en un botón. Si no ha pasado la validación entonces los registros se pondrán en rojo. El usuario llenara los campos que falta y tendrá que ejecutar el botón validar y si todo esta bien vuelve al color negro.

Si al guardar los registros están de color rojo entonces tendrán que salir un mensaje "Si envía su solicitud no sera atendida." ¿Desea guardar de todos modos? SI/NO.

1 Respuesta

Respuesta
1

Puedes explicarlo con imágenes, es decir, quieres que se valide, por ejemplo, ¿toda la columna "A"? Y si hay una celda en blanco, ¿tiene qué poner todas las demás celdas en rojo? ¿A partir de cuál fila inicia la captura?

Te envíe a tu correo el excel. Gracias

Sub validar()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim CeldaActa As String
'ULTIMA FILA PESTAÑA ACTA
Sheets("ACTA").Select
ufa = Range("A1048576").End(xlUp).Row
uca = Range("A2").End(xlToRight).Column
'ULTIMA FILA PESTAÑA DETALLE
Sheets("DETALLE").Select
ufd = Range("A1048576").End(xlUp).Row
ucd = Range("A1").End(xlToRight).Column
'ULTIMA FILA PESTAÑA PxQ
Sheets("PxQ").Select
ufp = Range("A1048576").End(xlUp).Row
ucp = Range("A1").End(xlToRight).Column
'VALIDANDO LOS REGISTROS SI ESTAN VACIOS
Sheets("ACTA").Select
For i = 3 To ufa
    For j = 1 To uca
        CeldaActa = Cells(i, j).Value
            If CeldaActa = "" Then
                Cells(i, j) = "x"
            End If
    Next
Next
End Sub

Este es mi macro. que funciona muy bien pero falta las validaciones que te menciono el el excel.

Te anexo el código para validar la fecha y los espacios en blanco.

Tu solicitud tiene varias peticiones, podrías separar cada petición en una pregunta nueva.

Sub Botón3_Haga_clic_en()
'Por.Dante Amor
    Columns("A:K").Interior.ColorIndex = xlNone
    u = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
    For i = 3 To ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
        'valida fecha
        If Not IsDate(Cells(i, "C")) Then
            Cells(i, "C").Interior.ColorIndex = 3
            Range("A1:K1").Interior.ColorIndex = 3
        End If
        'Validar blancos
        For j = 1 To 10
            If Cells(i, j) = "" Then
                Cells(i, j).Interior.ColorIndex = 3
                Range("A1:K1").Interior.ColorIndex = 3
            End If
        Next
    Next
End Sub

Esta es mi macro segunda versión

Sub validar()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim CeldaActa As String
Dim CeldaDetalle As String
Dim CeldaPxQ As String
'ULTIMA FILA PESTAÑA ACTA
Sheets("ACTA").Select
ufa = Range("A1048576").End(xlUp).Row
uca = Range("A2").End(xlToRight).Column
'ULTIMA FILA PESTAÑA DETALLE
Sheets("DETALLE").Select
ufd = Range("A1048576").End(xlUp).Row
ucd = Range("A1").End(xlToRight).Column
'ULTIMA FILA PESTAÑA PxQ
Sheets("PxQ").Select
ufp = Range("A1048576").End(xlUp).Row
ucp = Range("A1").End(xlToRight).Column
'VALIDANDO LOS REGISTROS SI ESTAN VACIOS PARA PESTAÑA ACTA
Sheets("ACTA").Select
For i = 3 To ufa
    For j = 1 To uca
        CeldaActa = Cells(i, j).Value
            If CeldaActa = "" Then
                Cells(i, j).Interior.ColorIndex = 3
                Else
                Cells(i, j).Interior.ColorIndex = 0
            End If
    Next
Next
'VALIDANDO LOS REGISTROS SI ESTAN VACIOS PARA PESTAÑA DETALLE
Sheets("DETALLE").Select
For i = 2 To ufd
    For j = 1 To ucd
        CeldaDetalle = Cells(i, j).Value
            If CeldaDetalle = "" Then
                Cells(i, j).Interior.ColorIndex = 3
                Else
                Cells(i, j).Interior.ColorIndex = 0
            End If
    Next
Next
'VALIDANDO LOS REGISTROS SI ESTAN VACIOS PARA PESTAÑA PxQ
Sheets("PxQ").Select
For i = 2 To ufp
    For j = 1 To ucp
        CeldaPxQ = Cells(i, j).Value
            If CeldaPxQ = "" Then
                Cells(i, j).Interior.ColorIndex = 3
                Else
                Cells(i, j).Interior.ColorIndex = 0
            End If
    Next
Next
Sheets("ACTA").Select
Range("A3").Select
End Sub

Ok, crea las siguientes preguntas para las siguientes validaciones.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas