flopy.es

Díscolo blog de informática, y humor

flopy.es - Díscolo blog de informática, y humor

Crear una lista de enlaces a archivos desde Excel

Lo que os voy a enseñar en este artículo no es algo que se use todos los días, pero que he necesitado poner en práctica hace muy poco. Se trata de cómo hacer una lista de hipervínculos hacia archivos en excel.

Supongamos que tenemos un directorio muy largo con miles de archivos, y necesitamos hacer una lista en excel con todos estos archivos y que además, al pinchar en uno de ellos se nos abra el archivo correspondiente. En primer lugar necesitamos poder sacar de forma automática una lista de todos los archivos que necesitamos para que después la podamos pegar en una columna de excel. Para ello nos vamos al menú inicio, y pinchamos en “ejecutar”.

En el recuadro correspondiente escribimos “cmd” y pulsamos “enter”.

Con esto tendremos abierto el interfaz de comandos. Ahora nos toca recordar los antiguos comandos de MS-DOS para movernos por los directorios. Como comentario, deciros que si el listado de archivos está en una carpeta de red, lo mejor que podéis hacer es crear una unidad de red (Botón derecho en “mi pc” y pinchamos en “conectar a unidad de red”) para tener una letra de unidad de ese directorio y poder así acceder desde MS-DOS sin problemas. Vamos a suponer que queremos sacar la lista de archivos del directorio “system32″ que se encuentra dentro del directorio “windows”. Lo que haremos será escribir “cd \.” para movernos al directorio raíz del disco duro. Una vez ahí, escribiremos “cd windows” para irnos al directorio “windows” y luego “cd system32″ para irnos dentro del directorio “system32″.

Allí dentro escribiremos “dir” para sacar la lista de archivos y directorios, pero aquí nos encontramos con los primeros problemas. El tema es que necesitamos que en la pantalla se puedan visualizar todos los archivos, y como en ese directorio hay varios miles de ellos, no van a caber todos en la pantalla. El segundo problema que nos podemos encontrar es la longitud del nombre de los archivos, que puede que exceda del ancho de la pantalla de la línea de comandos. Ambos problemas se resuelven de la misma forma. Pinchamos primero en la esquina superior izquierda de la ventana de línea de comandos y hacemos click en “propiedades”.

Allí nos vamos a “diseño” y cambiamos los parámetros del tamaño del búfer de la pantalla. Ponemos un alto mayor que el número de archivos que tenemos y un ancho que sea suficiente para el nombre de archivo más largo. Por ejemplo voy a poner un ancho de 180 caracteres y un alto de 2500 filas.

Con esto, simplemente tecleamos el comando “dir” y en la ventana tendremos un listado de todos los archivos y directorios dentro de “system32″. Para copiar ese listado, volvemos a ir al icono de la esquina superior izquierda de la ventana, pinchamos en “editar” y luego en “seleccionar todo”. Una vez hecho esto, volvemos a ir al icono, nos vamos de nuevo a “editar” y pinchamos en “copiar”. Así ya tenemos todo el listado en el portapapeles.

Antes de pegar el listado en el excel, haremos un pequeño truco, que es pegarlo y volverlo a copiar por completo en el block de notas. Así eliminaremos todos los formatos extraños que pueda haber, y aprovecharemos para seleccionar exactamente lo que queremos copiar. Nos vamos al block de notas (inicio –> todos los programas –> Accesorios –> Block de notas), y pegamos lo que acabamos de copiar. Una vez pegado, eliminamos las filas en la parte superior e inferior que no nos interesan (Dejamos sólo los archivos).

Una vez pegado todo, volvemos a ir a “edición” –> “seleccionar todo”, y de nuevo le damos a “edición” –> “Copiar”.

Ahora nos vamos al excel y en la cuarta fila, columna “A”, pegamos el contenido del portapapeles.

Si os fijáis, ya tenemos un archivo por fila, pero no tenemos los hipervínculos y en lugar de tener sólo el nombre nos aparecen más cosas en cada celda (tenemos tamaño de fichero, fecha, etc… Primero vamos a dejar en cada celda sólo el nombre del fichero que nos interesa. Para ello usamos una fórmula de excel muy curiosa, que es la fórmula “extrae”. Nos ponemos en la columna de al lado y en una celda (en la B4) ponemos la siguiente fórmula

Acotación:

=Extrae (A4;37;255)

 

De entrada os puede parecer un poco rara, pero tiene mucho sentido. El “A4″ significa que vamos a poner en la celda “B4″ el valor que tiene la “A4″, pero modificado con los parámetros que os voy a explicar. El número 37 significa que de la celda “A4″ va a ignorar los 37 primeros caracteres (que son dónde aparece el tamaño del fichero y diversos datos que no nos interesan). Y el número 255 significa que del nombre del archivo vamos a coger 255 caracteres (pongo una cifra grande para asegurarme, pero en este caso llegarían 15 o 20). Al aplicar la fórmula, veremos que en la celda nos aparece el nombre del archivo. Si arrastramos la fórmula hacia abajo, haremos lo mismo con el resto de filas y tendremos el nombre de todos los archivos, tal que así:

En la celda A2 vamos a escribir el directorio completo en el que están contenidos esos archivos. Una buena forma de hacerlo sin fallos, es ir a la carpeta donde están los archivos y coger la ruta de la barra de direcciones. Así obtengo que la ruta completa es tal y cómo aparece en la siguiente imagen.

Pegamos esa ruta en la celda A2, pero introduciendo al final una barra de directorio (\)

Ahora lo que haremos será hacer una nueva lista en la columna “C”. Lo que haremos será poner en cada celda el contenido de la celda A2 seguido del contenido de cada una de las celdas de la columna “B”, para así obtener la ruta completa a cada archivo y directorio. Para ello usamos el siguiente comando:

Acotación:

=Concatenar($A$2;B4)

Lo que hemos hecho es lo siguiente: El “$A$2″ le indica al excel que en cada celda el comienzo de lo que se va a escribir es siempre el contenido de la celda “A2″. El B4 es el final de cada celda, pero no lleva el símbolo “$” para que cuando extendamos la fórmula a cada columna, automáticamente asigne el valor de cada una de las filas de la columna “B”.

Por fin tenemos la ruta completa de cada fichero en una columna de excel. Ahora necesitamos que al pinchar en cada una de las filas se abra el archivo correspondiente. No hay una forma de hacer esto con ninguna función de excel, por lo que vamos a necesitar crear una macro muy sencilla que nos haga esta labor. La macro cogerá el valor de la celda en la que está posicionado excel, y lo que hará será crear un hipervínculo con el contenido de la celda. Al llegar a una celda en blanco, la macro se parará. Para crearla nos vamos a “herramientas” –> “Macro” –> “Macros”

Una vez ahí, le ponemos a la macro un nombre (por ejemplo “HyperLinksInCells”) y pinchamos en “crear”.

Con esto se nos abrirá el editor de macros.

Una vez que estemos dentro del editor, simplemente añadimos este texto a la macro

Acotación:

Sub HyperLinksInCells()
For Each Celda In Range(ActiveCell, ActiveCell.End(xlDown))
ActiveSheet.Hyperlinks.Add Anchor:=Celda, Address:=Celda.Value
Next Celda
End Sub

Grabamos la macro y nos situamos en la celda C4. Una vez allí nos vamos a “herramientas” –> “Macros” –> “macro” y ejecutamos la macro que acabamos de crear.

Y listo. Por fin tenemos una enorme lista de archivos con sus correspondientes hipervínculos en excel.

Este método puede parecer un pequeño lío al principio, pero permite hacerlo sin usar ningún programa a mayores. De todas formas estoy seguro que no es la única forma de hacerlo. Si se os ocurre alguna otra, podéis usar los comentarios del artículo para dejarnosla.

Share
Categoría: Trucos
  • Angel comentó:

    Para ahorrarte el paso de tener que ir a ms-dos y obtener directamente la ruta de los archivos creo que es mas rapido ir directamente al buscador de windows que te saca los archivos con sus respectivas rutas.

    19/01/2013 - 11:19

Tu dirección de correo no será publicada.