Necesito una macros que me mande un mensaje si faltan datos

Hola tengo una macros que me guarda datos de 5 filas y 7 columnas, si alguna fila no tiene datos la elimina automáticamente, necesito que al guardar los datos si no puse un valor en lo que yo llamo Orden de producción me mande un mensaje que me diga que "FALTA ORDEN DE PRODUCCIÓN" las otras 6 columnas de ley las lleno pero por las prisas luego me salto esta y para mi es la mas importante, asi que si no la pongo quiero que me diga que falta, no siempre necesito llenar las 5 filas, asi que no quiero que me afecte si no puse las 5 ordenes de producción y solo escribí una, dos , tres o cuatro

Saludos

1 Respuesta

Respuesta
1

Te dejo un ejemplo donde imagino que la col para controlar será la F. Estas líneas agregalas a tu macro de guardado

Sub GUARDADO()
'x Elsamatilde
'revisa celdas vacías en col F
Dim canti as byte

'considero que la 1er fila con datos es la 2 y si son 5 filas será hasta la 6

For i = 2 to 6

'si la celda de col F está vacía incremento el contador
If Range("F" & i) = "" Then canti = canti+1
next i

'controlo si la variable tiene valor <> 0, en ese caso envía el mensaje y no guarda
If canti <> 0 Then
Msgbox "Atención que faltan datos en col F, no se guardará",, "ATENCIÓN"
Else
'AQUÍ LAS LÍNEAS DE GUARDADO

End If
End Sub

Sdos y no olvides finalizar si el tema quedó resuelto.

Hola Experto

Mi celdas que siempre necesito que lleven un valor son las B13,B15,B17,B19,B21, en si la columna no es, no siempre necesito llenar las 5 filas, pero si yo escribo un dato o valor en las celdas por ejemplo C13,D13,H13,I13,J13,M13 que siempre las debo de llenar quiero que me diga que me falta poner el número de orden de producción que es la celda en este caso B13, pero no quisiera que me afecte si no lleno las otras 4 filas, pero si también lleno por ejemplo la fila 15, que me diga que no puse la orden de producción en caso de que se me olvide y quiera guardar los datos

Saludos

Agrega las lineas ajustadas, a tu macro de guardado

'x Elsamatilde
'revisa celdas vacías en col B
Dim canti as byte
'la 1er fila con datos es la 13 y hasta la 21 en saltos de 2
For i = 13 to 21 step 2
'si la celda de col B está vacía incremento el contador
If Range("B" & i) = "" Then canti = canti+1
next i
'controlo si la variable tiene valor <> 0, en ese caso envía el mensaje y no guarda
If canti <> 0 Then
Msgbox "Atención que faltan datos en col B, no se guardará",, "ATENCIÓN"
Else
'AQUÍ TUS LÍNEAS DE GUARDADO

End If

Queda ajustada al ejemplo enviado. Comentame si quedó resuelto

Sdos

Elsa

Hola ya metí estas lineas

Dim canti As Byte

For i = 13 To 21 Step 2

If Range("B" & i) = "" Then canti = canti + 1

Next i

If canti <> 0 Then

MsgBox "Atención que faltan datos en col B, no se guardará", , "ATENCIÓN"

Else

End If

Y me manda el mensaje que no guardara pero al dar aceptar se guardan los datos

También veo que si me esta tomando en cuenta las 5 celdas B13,B15,B17,B19,B21 y solo necesito que me las tome encuenta si escribí algo en la celda D13,D15,D17,D19,D21

Espero explicarme, gracias por tu tiempo

Elsa ya te voy entendiendo, ya puse donde se deben mis lineas de guardar y ya casi quedo, si solo pongo un valor en la celda B13 me manda el mensaje y no me guarda a menos que ponga valores en la B15,B17,B19,B21, solo que lo que necesito es que las celdas B13,B15,B17,B19,B21 me las tome en cuenta si ahi un valor escrito en la celda D con su numero correspondiente a la B

Si solo debe comparar que si D tiene valor no puede quedar vacía B entonces la línea debe quedar así:

'si la celda de col B está vacía incremento el contador
If Range("B" & i) = "" And Range("D" & i) <> "" Then canti = canti + 1

Ahora si debo impedir que se continué si B(i) = " " mientras haya algún valor en rango C:M de la misma fila i, las instrucciones son:

'si la celda de col B está vacía incremento el contador
tot = Application.WorksheetFunction.CountA(Range("C" & i & ":M" & i))
If Range("B" & i) = "" And tot <> 0 Then canti = canti + 1

Lo que se guarda en la variable 'tot' es la cantidad de celdas vacías en ese rango, si es <> 0 significa que hay datos en el rango pero no en B y x eso se incrementa la variable 'canti'

Comentame si ahora quedó resuelto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas