Necesito una macro muy completa
Buen día
en mi trabajo cada semana necesito crear subcarpetas con diferentes nombres (L020 C.D.N LOMAS PERIODO 20) en carpetas existentes(L020 C.D.N LOMAS), luego que ya tienen los datos *.xlsx, *.pdf, *.xml necesito enviarlos TODOS JUNTOS por correo a 2 direcciones diferentes con asunto (PERIODO 20 L020) y poner todas esas subcarpetas en dos ubicaciones de red distintas y quisiera ver si me pudieran ayudar a crear una o varias tablas de vba con excel 2010 para cada caso de antemano gracias!!

Con gusto te ayudo con la macro o las macros.
Vamos a realizar el primer punto: "necesito crear subcarpetas con diferentes nombres"
Para este punto dime lo siguiente:
a) ¿De dónde obtengo el nombre de la carpeta existente?, ¿Está en una celda?
b) ¿De dónde obtengo los nombres de las subcarpetas a crearse?, ¿Todas van debajo de una misma carpeta? ¿O hay algunas subcarpetas debajo de una carpeta1 y otras subcarpetas debajo de otra carpeta2?
Espero tus comentarios en ese orden.
Cuando terminemos con el punto 1 pasamos a los siguientes puntos.
Punto 2 "luego que ya tienen los datos *.xlsx, *.pdf, *.xml"
Punto 3: "ecesito enviarlos TODOS JUNTOS por correo a 2 direcciones diferentes con asunto (PERIODO 20 L020)"
Punto 4: "y poner todas esas subcarpetas en dos ubicaciones de red distintas"
Punto 5: " y quisiera ver si me pudieran ayudar a crear una o varias tablas de vba con excel 2010 para cada caso de antemano

Hola dante
Gracias por tu interés!
La carpeta existente si esta en un listado de excel son 64 celdas con nombre que identifica a que tienda pertenece ejemplo:
L020 C.D.N LOMAS
L033 C.S.T PARAISO
L737 C.S.T GUAYMAS
Y las subcarpetas llevan el mismo nombre que su carpeta madre, lo cual tengo concatenado en otra hoja de excel, aunado a "PERIODO ##" el cual aumenta un dígito cada semana y cada una va con su cada cual:
L020 C.D.N LOMAS\L020 C.D.N LOMAS PERIODO 20
L033 C.S.T PARAISO\L033 C.S.T PARAÍSO PERIODO 20
L737 C.S.T GUAYMAS\L737 C.S.T GUAYMAS PERIODO 20
Espero con estos datos podamos seguir al siguiente paso, de nuevo gracias y a la espera de tu ayuda
Saludos, Franco

También me puedes decir cómo se llama la hoja donde están las carpetas "madre" y en qué columna.
Cómo se llama la hoja de las carpetas "hijas" y en qué columna.
Por último, en dónde están las carpetas "madre" en el disco c:?
Están en la raíz, así:
C:\L020 C.D.N LOMAS
C:\L033 C.S.T PARAISO
¿O están abajo de la carpeta en donde vas a tener el archivo con la macro?

Te anexo la macro para crear las subcarpetas:
Sub CrearSubcarpetas() 'Por.Dante Amor Columns("D").ClearContents ruta = ThisWorkbook.Path '"C:\trabajo\" Set h2 = Sheets("Hoja2") For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row n = InStr(1, h2.Cells(i, "A"), "\") If n = 0 Then h2.Cells(i, "D") = "Carpeta no tiene la diagonal \" Else carp = Left(h2.Cells(i, "A"), n - 1) If carp = "" Then h2.Cells(i, "D") = "Archivo no tiene carpeta" Else If Dir(ruta & carp, vbDirectory) = "" Then h2.Cells(i, "D") = "La carpeta no existe" Else subcarp = Mid(h2.Cells(i, "A"), n) If Dir(ruta & carp & subcarp, vbDirectory) = "" Then MkDir ruta & carp & subcarp End If h2.Cells(i, "D") = "Carpeta creada" End If End If End If Next MsgBox "Creación de subcarpetas terminada" End Sub
También te anexo mi archivo para que veas cómo tengo la información, en la hoja2 tengo las subcarpetas y el botón para ejecutar la macro. En la columna "D" te va a escribir el estatus de cada subcarpeta.
https://www.dropbox.com/s/401yt9vafez5gn1/crear%20subcarpetas.xlsm?dl=0
Prueba la macro y avísame si es lo que necesitas.
Saludos. Dante Amor

Creo que vamos por buen camino, la macro la reviso en casa, ahora la hoja dónde están las madre se llama unidades columna d2 las hijas están a la derecha e2 en la misma hoja y la ruta es c:\users\"user"\documents\facturación
Así mismo tendría el libro para trabajar en casa en una usb con la misma carpeta "facturación"
A la espera de tus comentarios y de nuevo gracias!!

¿Pero en la columna E tienes concatenada en la columna "E" a la madre y a la hija?
Deben estar concatenadas la madre y la hija, tal como lo habías comentado.
Revisa en la macro el correcto nombre de la carpeta, revisa nombres, espacios, acentos, debe estar exactamente igual.
"c:\users\user\documents\facturación\"
También revisa que la hoja se llame "unidades"
Sub CrearSubcarpetas() 'Por.Dante Amor Columns("F").ClearContents ruta = "c:\users\user\documents\facturación" 'ThisWorkbook.Path '"C:\trabajo\" Set h2 = Sheets("unidades") For i = 2 To h2.Range("E" & Rows.Count).End(xlUp).Row n = InStr(1, h2.Cells(i, "E"), "\") If n = 0 Then h2.Cells(i, "F") = "Carpeta no tiene la diagonal \" Else carp = Left(h2.Cells(i, "E"), n - 1) If carp = "" Then h2.Cells(i, "F") = "Archivo no tiene carpeta" Else If Dir(ruta & carp, vbDirectory) = "" Then h2.Cells(i, "F") = "La carpeta no existe" Else subcarp = Mid(h2.Cells(i, "E"), n) If Dir(ruta & carp & subcarp, vbDirectory) = "" Then MkDir ruta & carp & subcarp End If h2.Cells(i, "F") = "Carpeta creada" End If End If End If Next MsgBox "Creación de subcarpetas terminada" End Sub

Buenos días Dante
Está bien este paso ya quedó y hace lo que necesito, ahora podrías hacer una tabla que copia y pega toda la carpeta y su contenido en una ubicación de red? Que datos necesitamos??

Con gusto te sigo apoyando con todos los puntos.
Al final de mi respuesta dice: “Es una buena respuesta” y puedes seleccionar una de 3 opciones:
- Excelente
- Si
- No
Por favor, podrías valorar la respuesta y crear una nueva para cada una de las peticiones.
Saludos. Dante Amor
- Compartir respuesta
