Hipervínculo en UserForm

Tengo un UserForm que introduce datos en una tabla(nombre, direcci) en el que tengo un ón, etc..) tengo en el User un botón que me abre un archivo PDF con el presupuesto emitido y la extensión se copia en una celda con este código:Private Sub Agregar_PDF_Click()ArchivoPDF = Application.GetOpenFilename("*.pdf, *.pd*", 0, "Archivos PDF")txt_docpdf = ""txt_docpdf = ArchivoPDFEnd SubEl problema es que en la celda me aparece donde esta guardado el archivo y lo que querría es que en la celda apareciera como un Hipervínculo que al pulsar te abriera el archivo y que lo hiciera para todo la columna de la tabla donde se introducen los datos. He probado con

ActiveSheet.Cells(1, "N").SelectActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _txt_docpdfos.Text, TextToDisplay:=txt_docpdf.TextEnd Sub

Pero solo lo hace para la celda N1 y necesito que lo haga cada vez que introduzco un dato, es decir a todo la Columna.

1 respuesta

Respuesta
1

ActiveSheet.Cells(1, "N").Select

Esta seleccionando la celda N1... si tu quieres que trabaje a lo largo de una columna debes hacerlo usando una variable (por ejemplo "filalink") y trabajarlo con un bucle FOR

FOR filalink = 1 to lacantidadtotaldefilas

...

...

Instrucciones

ActiveSheet.Cells(filalink, "N").Select

...

Instrucciones

...

...

NEXT filalink

Lo que si me parece que vas a tener que ir uno por uno seleccionando los archivos como ya estas haciendo con el Application. GetOpenFilename

Para averiguar "lacantidadtotaldefilas" puedes usar quizas una funcion

Application. WorksheetFunction.CountA("Range("M;M")

Que es un equivalente al CONTARA de Excel.

Gracias y perdona la ignorancia, pero no es posible darle un código a toda la columna para que el texto que se introduce en esa columna lo convierta a hipervinculo??

Si activas el grabador de macro y seleccionas alguna celda y luego de las cintas de opciones de Excel eliges, Insertar Hipervínculo...

Vas a obtener un código como este...

Range("H5").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"http://www.mipaginaweb.com/", TextToDisplay:="ir a pagina"

Ese código lo puedes adaptar para ir "caminando" por tu columna y convertir lo que haya en cada celda e link...

El valor de cada celda ya sabes que es(usando la misma variable de antes)

Celda(filalink, nrocolumna)

Y al crear el hyperlink en Address especificas la dirección web (que presumo es el valor que acabas de recuperar de la celda)

Y en TextToDisplay lo que vas a mostrar en la celda como link subrayado (podría ser lo mismo)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas