Cargar un pdf mediante UserForm y que se pegue en base de datos

Les comento tengo un UserForm con el cual cargo bombas de agua a una base de datos, el tema es que además de cargar los datos de la misma necesito crear como un botón o algo así para que al hacer click me abra el explorador y me permita seleccionar un archivo pdf que es el datasheets de la bomba y que una ves seleccionado este se almacene en la columna O de una base de datos de excel en la hoja 1.

Aver que podemos hacer ja ja.

3 Respuestas

Respuesta

Aquí la solución

Dim fila As Integer
fila = 2
Do While Hoja1.Cells(fila, 1) <> ""
fila = fila + 1
Loop

On Error Resume Next
With Application.FileDialog(msoFileDialogOpen)
.InitialFileName = Path
.Title = "Abrir archivo PDF"
.Filters.Clear
.Filters.Add "PDF files", "*.pdf"
.InitialView = msoFileDialogViewDetails
.Show
If .SelectedItems.Count = 0 Then
Else
Hoja1.Range("O" & fila) = .SelectedItems(1)
End If
End With

Me busca el archivo y copia la dirección, pero no como hipervínculo, es decir si quieres hacer click no pasa nada

Seria de esta manera para que quede como hyperlink

Dim fila As Integer
fila = 2
Do While Hoja1.Cells(fila, 1) <> ""
    fila = fila + 1
Loop
On Error Resume Next
With Application.FileDialog(msoFileDialogOpen)
    .InitialFileName = Path
    .Title = "Abrir archivo PDF"
    .Filters.Clear
    .Filters.Add "PDF files", "*.pdf"
    .InitialView = msoFileDialogViewDetails
    .Show
    If .SelectedItems.Count = 0 Then
    Else
    Hoja1.Range("O" & fila) = .SelectedItems(1)
    Hoja1.Range("O" & fila).Hyperlinks.Add Anchor:=Selection, Address:= _
        .SelectedItems(1), TextToDisplay:= _
        .SelectedItems(1)
    End If
End With

Respuesta
1

Y qué necesitas almacenar en la hoja, ¿la ruta y el nombre del archivo pdf?

claro lo que necesito es que al hacer click en el boton del Userform me abra el explorador de windows para buscar el archivo pdf (datasheets de la bomba) yo lo seleccione y me lo pegue en la hoja 1 columna "O" del excel. Pero lo tiene que pegar como hiervinculo, es decir que al hacer click me abra el pdf. Cual es la idea que userform que uso es para carga bombas de agua en la base de datos y en la columna O va el datasheets el cualquisiera cargarlo como ya explique. Que se puede hacer??

Pero no pusiste qué quieres pegar en la celda, ya entendí que quieres abrir el explorador, seleccionar un archivo y ...

Qué quieres que te ponga en la celda, ¿el nombre del archivo?

También entendí que en esa celda tendrá el hipervínculo al archivo, para que cuando le des click a la celda te abra el archivo. Esto no lo habías comentado, pero está bien, lo agrego a la macro, solamente tienes que decirme qué dato te pongo en la celda.

Claro. Yo abro un userform este tiene un boton, cuando hago click me abre el explorador y ahi yo busco el datasheet de la bomba que es un pdf al seleccionarlo quiero que envie la dorección del archivo como hipervinculo a la columna O, de tal forma que al hacerle click me abra el pdf.

H o l a: Te anexo la macro para que la pongas en tu formulario o en un botón:

Cambia en el código "Hoja1", por el nombre de la hoja donde vas a almacenar el vínculo. En la macro yo estoy obteniendo la fila donde se va a almacenar el vínculo, pero si tu sabes en cuál fila almacenar, entonces cambia la variable fila por tu número de fila o por tu variable en esta línea:

h.Hyperlinks.Add Anchor:=h.Cells(fila, "O"), _
                Address:=archivo, TextToDisplay:="Ver archivo"

La macro completa:

Sub SeleccionarPdf()
'Por.Dante Amor
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Seleccione archivo PDF"
        .Filters.Clear
        .Filters.Add "archivos Pdf", "*.pdf"
        .AllowMultiSelect = False
        .InitialFileName = ThisWorkbook.Path & "\"
        If .Show Then
            archivo = .SelectedItems.Item(1)
            Set h = Sheets("Hoja1")
            fila = h.Range("O" & Rows.Count).End(xlUp).Row + 1
            h.Hyperlinks.Add Anchor:=h.Cells(fila, "O"), _
                Address:=archivo, TextToDisplay:="Ver archivo"
        End If
    End With
End Sub

Avísame si tienes alguna duda.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
Respuesta

Este ejemplo

http://www.programarexcel.com/2014/04/explorador-de-archivos-multiselect.html?m=1 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas