Carol tiene un directorio con alrededor de 1,000 archivos con nombres como YR1905-LIC12345-Smith, Harry-Brown, Mary. A ella le gustaría traer todos estos nombres de archivo (no los archivos en sí) en una hoja de trabajo y separar los nombres en el tablero. Por lo tanto, el nombre de archivo de ejemplo ocuparía cuatro celdas en una sola fila. Carol cree que se necesitará una macro para lograrlo, pero no está segura de cómo acceder a los nombres de archivo en esa macro.

Por supuesto, puede usar una macro para hacer esto, pero no es necesario que use una macro. En su lugar, puede usar un viejo truco de la era de DOS para obtener lo que necesita.

En el símbolo del sistema (accesible a través de Windows: Inicio | Todos los programas | Accesorios | Símbolo del sistema), navegue hasta que esté en el directorio que contiene los archivos. Luego ingrese lo siguiente:

dir /b /a-d > filelist.txt

Esto crea un archivo de texto (filelist.txt) que contiene una lista de todos los archivos dentro del directorio actual. Ahora, dentro de Excel, puede seguir estos pasos:

  1. Dentro de Excel, haga clic en la herramienta Abrir en la barra de herramientas. Excel muestra el cuadro de diálogo Abrir.

  2. Usando la lista desplegable Archivos de tipo en la parte inferior del cuadro de diálogo, indique que desea abrir archivos de texto (.prn; .txt; * .csv).

  3. Navegue y seleccione el archivo filelist.txt que creó en el símbolo del sistema.

  4. Haga clic en Abrir. Excel inicia el Asistente para importación de texto y muestra el cuadro de diálogo Paso 1 de 3. (Ver figura 1)

  5. Asegúrese de que la opción Delimitada esté seleccionada, luego haga clic en Siguiente. Excel muestra el cuadro de diálogo Paso 2 de 3.

  6. Asegúrese de especificar un guión como delimitador. (Deberá hacer clic en Otro y luego ingresar un guión como delimitador).

  7. Haga clic en Finalizar. Su archivo se importa y se divide en los guiones, tal como lo deseaba.

Los pasos anteriores son bastante fáciles de realizar, especialmente si solo necesita obtener la lista de archivos en Excel de vez en cuando. Si necesita hacerlo de forma más rutinaria, probablemente debería buscar una forma de hacerlo utilizando una macro. La siguiente macro funcionará muy rápidamente:

Sub GetFileNames()

Dim sPath As String     Dim sFile As String     Dim iRow As Integer     Dim iCol As Integer     Dim splitFile As Variant

'specify directory to use - must end in "\"

sPath = "C:\"



iRow = 0     sFile = Dir(sPath)

Do While sFile <> ""

iRow = iRow + 1         splitFile = Split(sFile, "-")

For iCol = 0 To UBound(splitFile)

Sheet1.Cells(iRow, iCol + 1) = splitFile(iCol)

Next iCol         sFile = Dir     ' Get next filename     Loop End Sub

Cuando ejecute la macro, asegúrese de que no haya nada en la hoja de trabajo actual. (Todo lo que haya allí se sobrescribirá). Además, debe cambiar la ruta del directorio que se asigna a la variable sPath cerca del comienzo de la macro.

Si obtiene un error al ejecutar la macro, es muy probable que esté usando Excel 97. La función Dividir (utilizada para separar el nombre del archivo en los guiones) no se agregó a VBA hasta Excel 2000. Si está usando Excel 97 , entonces puedes usar la siguiente rutina para emular lo que hace la función Split:

Function Split(Raw As String, Delim As String) As Variant     Dim vAry() As String     Dim sTemp As String     Dim J As Integer     Dim Indx As Integer

Indx = 0     sTemp = Raw     J = InStr(sTemp, Delim)

While J > 0         Indx = Indx + 1         ReDim Preserve vAry(1 To Indx)

vAry(Indx) = Trim(Left(sTemp, J))

sTemp = Trim(Mid(sTemp, J, Len(sTemp)))

J = InStr(sTemp, Delim)

Wend     Indx = Indx + 1     ReDim Preserve vAry(1 To Indx)

vAry(Indx) = Trim(sTemp)

Split = vAry()

End Function

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (11143) se aplica a Microsoft Excel 97, 2000, 2002 y 2003.

Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:

link: / excelribbon-Pulling_Filenames_into_a_Worksheet [Extrayendo nombres de archivo en una hoja de trabajo].