Validar Datos antes de guardar archivo en PDF

Como están gusto en saludarlos, disculpa como puedo hacer una macro que primero me valide la data Ejemplo que las celdas B13, D13, E13, F13, B15, D15, F15 este con datos obligatorios para que pueda guardar el archivo en PDF o imprimir, si alguno de esos campos esta vacío no permita guardar o imprimir y de un mensaje que faltan esas celdas.

3 Respuestas

Respuesta
1

Quizás esto aporte algo:

Para validar

If celda= empty then exit sub

Para guardar PDF fijate en estos ejemplos

https://youtu.be/0UuR_zRQCB4

https://youtu.be/jg59LhL9Bb8

Respuesta
2

Prueba la macro

Sub valida()
 rango = Array("B13", "D13", "E13", "F13", "B15", "D15", "F15")
 For i = LBound(rango) To UBound(rango)
    If Range(rango(i)) = "" Then
    MsgBox "Celda " & Range(rango(i)).Address(False, False) & " vacía"
    Exit Sub
    End If
 Next i
End Sub

La macro que te di pon al principio

Sub valida()
 rango = Array("B13", "D13", "E13", "F13", "B15", "D15", "F15")
 For i = LBound(rango) To UBound(rango)
    If Range(rango(i)) = "" Then
    MsgBox "Celda " & Range(rango(i)).Address(False, False) & " vacía"
    Exit Sub
    End If
 Next i
'
'
'pon aquí la macro para guardar en pdf
'
End Sub

Gracias por la información 

Quedaría así  

Sub valida()

Dim Ruta As String
Dim NombreArchivo As String
Dim Hoja As Object

strTitulo = "Data"
Mensaje = "No se puede continuar. Las siguientes celdas están vacías:"

rango = Array("B13", "D13", "E13", "F13", "B15", "D15", "F15")
For i = LBound(rango) To UBound(rango)
If Range(rango(i)) = "" Then
'MsgBox "Celda " & Range(rango(i)).Address(False, False) & " vacía"
MsgBox Mensaje & vbNewLine & Range(rango(i)).Address(False, False), vbExclamation, "Data"
Exit Sub
End If
Next i
'
'
'pon aquí la macro para guardar en pdf

With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Data - Seleccionar carpeta"
.Show
If .SelectedItems.Count = 0 Then
'Nada
Else
Ruta = .SelectedItems(1)
For Each Hoja In ThisWorkbook.Sheets
NombreArchivo = Hoja.Name
If NombreArchivo Like "*Hoja*" Then
MsgBox "Guardando en PDF " & NombreArchivo, vbInformation, "Data"
Hoja.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Ruta & "\" & NombreArchivo & ".pdf", OpenAfterPublish:=False
Else
End If
Next Hoja
End If
End With

'
End Sub

Si prueba y me comentas

El tema sigue abierto puedes cerrar valorando la respuesta saludos

Respuesta

¿Cómo se guarda un libro en formato PDF? Nunca lo probé... dime

Bueno así sin poder probarlo no se exactamente pero se me ocurre que el código debería ser algo así:

if not (range("B13") and range("D13") )then
          activeworkbook.saveas ............(guardar en PDF)
else
          msgbox "ERROR"
end if

el codigo no es exacto pero creo que tendria esa estructura, ya me diras si es lo que buscabas.....

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas