Consulta varias de Excel Macro VBA

Un gusto en saludarle.

Revisando tu perfil, detallo que eres un experto en Excel y quisiera hacerte varias consulta sobre Macro VBA y otras inquitudes:

1.) Estoy creando un Botón que convierte la Hoja de Excel en PDF, conseguí el Sintaxis en la Web y me funciona a la perfección. Ahora, requiero cuando se guarde el archivo PDF en la ruta asignada, el archivo tenga un numero correlativo (revisando previamente si existe el archivo con el mismo nombre, por Ejemplo Ped_1, Ped_2, Ped_3 y etc)

Anexo el sintaxis:

Sub Exportar_a_PDF()

Dim Nombre As String, Ruta As String

Ruta = ThisWorkbook.Path & "\"

Nombre = Range("F6").Value

 

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _

    Filename:=Ruta & Nombre & ".pdf", _

    Quality:=xlQualityStandard, IncludeDocProperties:=True, _

    IgnorePrintAreas:=False, OpenAfterPublish:=True

    MsgBox "Se ha guardado la hoja en PDF", vbInformation

 

End Sub

2.) Existe una manera que después de haber exportado la Hoja de Excel a PDF, la informaciones en las celdas, ¿se borren? (Quiero hacer esto a través de una Macro VBA)

3.) Logré hacer una lista despegable (C13) y de ésta una sub-lista despegable (F13). [Anexo el archivo para que puedas detallarlo.]. La consulta es: cuando las celdas de la columna C ya estan llenados y se requieren borrarlos, al momento de hacerlo (Seleccionado todas aquellas celdas que tenga información), la lista depegable de la Columna F, se mantiene con información del previo codigo introducido en la columna C. Como hago para cuando hago selección de estas celdas, ¿al borrarlos la columna F no aparezca ninguna información? Ya que de hacerlo, debo de hacerlo uno por uno y ahí si se desaparece.

4.) ¿Existe alguna manera de codificar aquellas celdas que deben ser llenados antes de Imprimir a PDF? Si no estas celdas no contienen información no prodan ser impreso a PDF.?

5. ¿Cuál sería el proceso para bloquear el Workbook pero dejando solo algunas celdas para su modifcación?

Adjunto el link para que puedas accesar al proyecto en el cual estoy trabajando y generaron las dudas anteriormente expuesta.

https://drive.google.com/open?id=0B-HL4w2alOVqT1AxcFd1ZnBackk 

Espero que me puedas ayudar y no sea de mucho molestia.

1 Respuesta

Respuesta

2 - En la columna E en la parte de Descripción has puesto esta fórmula

SI.ERROR(BUSCARV(C13;'BD-Shoes'!$E$2:$J$332;2;0);"")

Si la modificas a esta

=SI(C13="";"";SI.ERROR(BUSCARV(C13;'BD-Shoes'!$E$2:$J$332;2;0);""))

Los datos de la columna E y F se borran directamente cuando borras lo de la columna C.

-----------------------------------------------------------------------------------------------------------------------------------------------------------

3- Para borrar la Cantidad-Precio y Total, columnas G, H, I sólo hay que hacer

Range("G13:I34")=""

    'Borra Observaciones
    Range("D37:D40") = ""

Lo que has puesto en Hoja1, el listado largo de cosas, lo puedes borrar.

-----------------------------------------------------------------------------------------------------------------------------------------------------------

4- Se puede seleccionar una parte de la hoja. He probado varias formas:

Si seleccionas varios rangos los datos aparecen en 1 hoja distinta, si filtras los datos también. Creo que para que saliera bien habría que poner los datos en una hoja distinta para que pusiera la info en 1 página. No sé como has hecho la hoja, con el marco azul y el resto de celdas color beige.

-----------------------------------------------------------------------------------------------------------------------------------------------------------

5-Lo del workbook no sé como hacerlo.

-----------------------------------------------------------------------------------------------------------------------------------------------------------

Cambios en la función

Sub Exportar_a_PDF()

Dim Nombre As String, Ruta As String
Dim r1 As Range
Ruta = ThisWorkbook.Path & "\"
Nombre = Range("F6").Value
    Set r1 = Range("A1:J17,B20:J25,B27:J30") 'Pedido Varios rangos de pedido
    Set r2 = Range("B35:J41") 'Total y Observaciones
    Set union_r1_r2 = Union(r1, r2) 'Une los rangos
    union_r1_r2 .Select
    Nombre = nuevo_nombre(Ruta, Nombre) 'Renombra los archivos
    Selection.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=Ruta & Nombre & ".pdf", _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, OpenAfterPublish:=True
    MsgBox "Se ha guardado la hoja en PDF", vbInformation
    'Borra la informacion de la columna C Código

    Range("C13:C34") = ""
    'Borra Cantidad-Precio-Total
    Range("G13:I34") = ""
    'Borra Observaciones
    Range("D37:D40") = ""
End Sub

------------------------------------------------------------------------------------------------------------------------------------

Private Function nuevo_nombre(Ruta As String, Nombre As String) As String
    Dim i As Integer
    For i = 1 To 32767
        'Si existe el archivo tendrá una ruta
        If (Len(Dir(Ruta + Nombre + "_" + CStr(i) + ".pdf")) = 0) Then
            nuevo_nombre = Nombre + "_" + CStr(i)
            Exit For
        End If
    Next i
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas