Llenar todas las columnas en un rango.

En una base de datos en Excel tengo que llenar registros en un rango (A3:F:20000) lo que necesito es una macro que no me permita digitar la siguiente fila sin antes no llenar todas las columnas de la fila anterior.

1 respuesta

Respuesta
3

Entra al Editor de macros, selecciona la hoja donde debe realizarse este control, y allí copia el siguiente código.

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
Dim x As Integer
'solo se ejecuta dentro del rango A3:F20000
If Intersect(Range("A3:F20000"), Target) Is Nothing Then Exit Sub
'x = fila anterior a la digitada
x = Target.Row - 1
'se suman las celdas en blanco en el rango A:F de la fila anterior
cantDatos = Application.WorksheetFunction.CountBlank(Range("A" & x & ":F" & x))
If cantDatos > 0 Then
    MsgBox "Faltan datos en la fila anterior.", , "Completar campos"
    'inhabilita este evento change para borrar lo ingresado y se posiciona en la fila anterior para completarla
    Application.EnableEvents = False
    Target = ""
    Target.Offset(-1).Select
    Application.EnableEvents = True
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas