Copiar, mover, eliminar y renombrar archivos y carpetas desde Excel con VBA y macros

Cuando trabajas con macros en Excel, en algún momento de tu vida será necesario administrar archivos desde tus propias macros y para eso será necesario que tengas a la mano las instrucciones necesarias para realizar acciones sobre esos archivos tales como copiar, mover, renombrar e incluso eliminar.

En este tutorial y video te muestro las instrucciones necesarias para realizar las acciones que ya mencioné. Es importante recalcar que dichas acciones las puedes enriquecer si las combinas con formularios y haces volar tu imaginación.

En el complemento EXCELeINFO add-in ya cuento con algunas herramientas que nos van a ahorrar tiempo en el manejo de archivos en Excel.

Primero conoce la propiedad Path

La propiedad Path nos ayudará a conocer la ruta completa de un archivo. Para nuestros ejemplos aplicamos esta propiedad al archivo activo o ThisWorkbook. La siguiente macro nos mostrará un mensaje con la ruta completa donde se encuentra alojado nuestro archivo actual, además de recorrer todos los archivos abiertos y mostrar el nombre y la ruta completa de cada uno de ellos.

Option Explicit
'
'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Sub MostrarRuta()

Dim Archivo As Object

MsgBox ThisWorkbook.Path

For Each Archivo In Application.Workbooks

    MsgBox Archivo.Name & vbNewLine & vbNewLine & Archivo.Path

Next Archivo

End Sub

Con la propiedad Path mostramos la ruta completa de un archivo.

Figura 1. Con la propiedad Path mostramos la ruta completa de un archivo.

Ver Video Copiar, mover, eliminar, renombrar archivos y carpetas desde Excel

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Crear directorio o carpeta

Si hablamos de administrar archivos no podemos dejar de lado una instrucción que nos ayudará a crear carpetas, ya que es el lugar donde vamos a almacenar nuestros archivos. La siguiente macro nos permite crear un directorio llamado carpeta en la misma ruta donde se encuentra el archivo activo. Haremos uso de la instrucción MkDir o Make Directory por sus siglas en inglés.

Sub CrearDirectorio()

    Dim Ruta As String
    
    Ruta = ThisWorkbook.Path
    
    MsgBox Ruta
    
    MkDir Ruta & "\carpeta"

End Sub

Copiar archivos

Para copiar archivos con VBA haremos uso de la instrucción FileCopy o Copiar archivo por su nombre en inglés. Ésta propiedad nos pedirá primero la ruta y el nombre de origen y la ruta y el nombre de destino. Cabe aclarar que al momento de pegar el archivo en la ruta destino, tenemos la posibilidad de se copie con un nuevo nombre.

Nota: Es importante que especifiques la extensión de los archivos, ya que no es lo mismo Archivo que Archivo.txt.

Sub CopiarArchivos()

    Dim Ruta As String
    
    Ruta = ThisWorkbook.Path
    
    'FileCopy "C:\Users\usuario\Documents\texto.txt", "C:\Users\usuario\Documents\carpeta\texto.txt"
    
    FileCopy Ruta & "\texto.txt", Ruta & "\carpeta\texto2.txt"

End Sub

Eliminar archivos

La instrucción Kill para eliminar archivos es muy importante que la uses con mucho cuidado, ya que si eliminas un archivo usando esta instrucción no será posible recuperar el archivo, ya que no se va a la Papelera de reciclaje

En la siguiente macro, además de usar Kill para eliminar el archivo, previamente enviaremos un mensaje de confirmación donde el usuario decidirá si desea continuar con la eliminación del archivo.

Sub EliminarArchivo()

    Dim Ruta As String
    Dim Confirmar As Boolean
    
    Ruta = ThisWorkbook.Path
    
    Confirmar = MsgBox("Está seguro de eliminar el archivo? " & ThisWorkbook.Name, vbYesNo + vbQuestion, "EXCELeINFO")
    
    If Confirmar = vbYes Then
    
        Kill Ruta & "\texto.txt"
        
    Else
    
    End If

End Sub

Es importante tener mucho cuidado al usar la instrucción Kill en Excel VBA.

Figura 2. Es importante tener mucho cuidado al usar la instrucción Kill en Excel VBA.

En EXCELeINFO add-in contamos con la herramienta Cerrar y eliminar archivo activo, la cual nos ahorra el trabajo de cerrar el archivo activo manualmente y tener que ir a la carpeta y borrarlo.

Renombrar archivos

Tanto para renombrar archivos como para mover archivos haremos uso de la instrucción Name. Esta instrucción nos pedirá inicialmente la ruta y el nombre actual y la ruta el nombre nuevo. También hay que indicar que esta misma instrucción la podemos utilizar para renombrar directorios.

Sub RenombrarArchivos()

    'Renombrar archivo
    Name "C:\Users\usuario\Documents\carpeta\texto.txt" As "C:\Users\usuario\Documents\carpeta\textonuevo.txt"
    
    'Renombrar carpeta
    Name "C:\Users\usuario\Documents\carpeta" As "C:\Users\usuario\Documents\carpetanueva"

End Sub

En EXCELeINFO add-in contamos con la herramienta Renombrar archivo activo que nos permite cambiarle al nombre al archivo que tenemos abierto sin necesidad de cerrarlo.

Mover archivos de carpeta

Por último veremos cómo mover archivos de una carpeta a otra usando también la instrucción Name. Pero lo haremos más interesante, haremos uso de la función Dir que nos permitirá definir un filtro de archivos y el filtro que usaremos será que nos permite mover sólo los archivos de Texto, es decir con extensión .TXT. También usaremos un Bucle Do Until para recorrer todos los archivos de Texto y termine el ciclo cuando ya no haya archivo qué mover.

Sub MoverArchivos()

    Dim MiArchivo As String
    
    MiArchivo = Dir("C:\Users\usuario\Documents\*.txt")
    
    If MiArchivo = "" Then
        MsgBox "No hay archivos a mover.", vbExclamation, "EXCELeINFO"
    Else
    
    Do Until MiArchivo = ""
    
        Name "C:\Users\usuario\Documents\" & MiArchivo As "C:\Users\usuario\Documents\carpetanueva\" & MiArchivo
        MiArchivo = Dir
    
    Loop
    End If

End Sub

En EXCELeINFO add-in contamos con la herramienta Mover archivo de carpeta que nos permitirá mover el archivo activo a otra carpeta sin necesidad en un solo paso.

Descarga el archivo de ejemplo

Descargar el ejemplo Copiar, mover, eliminar, renombrar archivos y carpetas desde Excel – EXCELeINFO.zip

Si te gustó este tutorial por favor anótate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...