¿cómo comprobar si existe un libro en una carpeta?
Para comprobar si existe un libro en una carpeta específica, puede utilizar la función DIR. DIR es una función que representa el directorio. Debe especificar la ruta del archivo con nombre y extensión. Si existe un archivo, devuelve el nombre del archivo; de lo contrario, un valor vacío.
Escriba código para verificar si existe un archivo de Excel en una carpeta
Utilice los siguientes pasos:
- Primero, especifique un rango o cuadro de mensaje para obtener el resultado de la función.
- Ahora ingrese el nombre de la función «DIR» y escriba los paréntesis iniciales.
- Después de eso, ingrese la ruta del archivo usando comillas dobles y asegúrese de ingresar la extensión del archivo junto con el nombre del archivo.
- A continuación, escriba los paréntesis de cierre para cerrar la línea de código.
Sub vba_Check_workbook() MsgBox Dir("C:UsersDellDesktopbook1.xlsx") End Sub
Cuando ejecuta esta línea de código, aparece un cuadro de mensaje que contiene el nombre del archivo, lo que significa que el archivo existe en la ubicación que especificó.
Enlaces útiles: Ejecutar una macro – Grabador de macros – Editor de Visual Basic – Manual de macros personales
Encuentre varios archivos si existen en una carpeta
Es posible que deba verificar varios archivos si todos existen en una carpeta. En este caso puedes utilizar el siguiente código.
Sub vba_check_workbook() Dim myFolder As String Dim myFileName As String Dim myRange As Range Dim myCell As Range Set myRange = Range("A1:A5") myFolder = "C:UsersDellDesktopData" For Each myCell In myRange myFileName = myCell.Value If Dir(myFolder & "" & myFileName) = "" Then myCell.Offset(0, 1) = "File Doesn't Exists." Else myCell.Offset(0, 1) = "File Exists" End If Next myCell End Sub
Para entender este código, lo dividí en tres partes.
- En la PRIMERA parte tienes todas las variables que necesitamos usar en el código. Una variable para usar como dirección de carpeta, nombre de archivo, el rango donde tienes todos los nombres y cada celda del rango.
- En la SEGUNDA parte defines el rango de direcciones donde tienes todos los nombres de los archivos que deseas verificar. Y también la ruta de la carpeta asignada a la variable.
- En la TERCERA parte tienes un BUCLE PARA CADA UNO para recorrer todos los archivos de la carpeta. Este bucle utiliza el DIR para hacer coincidir todos los nombres que tiene en el rango. También utiliza IF STATEMENT para ingresar un valor en la celda correspondiente como comentario, ya sea que el archivo exista o no.
Nota: Si desea utilizar este código, debe cambiar la ruta de la carpeta y establecer el rango en el que tiene todos los nombres de los libros.