En excel como crear una macro para crear una carpeta con el valor de una celda I1 que tiene formato fecha, y después copiar fich

Como crear en excel una macro para crear una carpeta con el valor de una celda I1 que tiene formato fecha, y después copiar ficheros desde una carpeta "C:\Users\usuario\Desktop\ropa tanya envíos" a la carpeta nueva con los valores de la columna E, teniendo en cuenta que el nombre de las celdas de la columna E, son el principio del nombre del fichero que existe en la carpeta.

1 Respuesta

Respuesta
1

H o l a:

Puedes poner ejemplos de los valores que tienes en la columna E

Y también pon el ejemplo de los nombres de los archivos tal cual los tienes en la carpeta.

Es decir, si en la celda tienes "docu", y en la carpeta tienes un archivo que se llama "documento general.xlsx"

O si en la celda tienes "docu", y en la carpeta tienes 3 archivos que empiezan con la palabra "docu": "documento1.docx", documento2, docx y documento3.docx, ¿cuál quieres que se copie? ¿El primero o los 3?

Para crear una carpeta se utiliza la instrucción

Mkdir "nombre_de_la_carpeta"

Por ejemplo, si en la celda tienes C4 una fecha, Entonces la macro quedaría así:

Sub crearDir()
'Por.Dante Amor
    ruta = ThisWorkbook.Path & "\"
    carp = Format([C4], "dd-mmm-yyyy")
    If Dir(ruta & carp, vbDirectory) = "" Then
        MkDir ruta & carp
    End If
    MsgBox "Carpeta creada"
End Sub

Explica con ejemplos lo que quieres copiar para enviarte la macro completa.

sal u dos

En la celda tendría por ejemplo "docu 0001" "docu 0001 27-9", quisiera que buscara el archivo que tenga el principio completo de la celda, ya que los archivos en la carpeta existente son "docu 0001 19 $.jpg" "docu 0001 27-9 16 $" y copiarlos en la carpeta nueva creada.

Espero haberme explicado lo mejor posible, caso contrario indícamelo y te mando pro correo electrónico imágenes.

Un saludo:

Alfredo

Te anexo la macro.

Cambia en la macro "C1" por la celda en la que tienes la fecha.

Cambia el 2 por el número de fila en la que empiezan los valores en la columna E

Revisa que el nombre de la carpeta "C:\Users\usuario\Desktop\ropa tanya envíos\" esté bien escrito:

Sub CrearDirCopiarArchivos()
'Por.Dante Amor
    ruta = "C:\Users\usuario\Desktop\ropa tanya envíos\"
    'ruta = ThisWorkbook.Path & "\"
    carp = Format([C1], "dd-mmm-yyyy")
    If Dir(ruta & carp, vbDirectory) = "" Then
        MkDir ruta & carp
    End If
    For i = 2 To Range("E" & Rows.Count).End(xlUp).Row
        arch = Cells(i, "E")
        aars = Dir(ruta & arch & "*")
        If aars <> "" Then
            FileCopy ruta & aars, ruta & carp & "\" & aars
        End If
    Next
    MsgBox "Archivos copiados"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas