Más de Macros

Hola Cesar, cordial saludo.
No estoy seguro si una pregunta que te hice sobre una macro quedó registrada, por esa razón te la vuelvo a formular.
Estoy en un hoja de Excel desde donde tengo unas macros y desde ahí requiero crear otra macro que tenga la siguiente tarea.
1) Copiar una carpeta de trabajo que está en la siguiente ruta: C:/Ricardo Documentos/contratos/SLI S.A. Y tiene el nombre de "AA carpeta de Copia", dicha carpeta tiene inserta un archivo excel con nombre "Matriz de Copia".
2) Renombrar la carpeta y el archivo inserto copiados en el punto anterior con nombre que sean imputados por medio de la macro cada vez que se requiera crear un nuevo cliente. Ejemplo, se debe crear una carpeta de trabajo par un cliente nuevo llamado Carvajal y cuyo nombre del archivo de Excel se llame CARV.XLS.
Te agradecería me colaboraras con este dato que hace rato le estoy dando vuelta sin éxito.
Atentamente
Ricardo bolaños

1 respuesta

Respuesta
1
Vas a tener una buena librería de macros cuando terminemos con todo esto.
Bueno... aún no estoy seguro si podré hacer lo que pides pues nunca me había salido de Excel hacia Windows pero de eso se trata este asunto.. de aprender. Tengo una pregunta, el nombre del archivo y de la carpeta de donde los vamos a sacar:
-Las primeras 4 letras
-El nombre de una celda del libro activo
-Un cuadro de dialogo que pida el nombre
Cuéntame si alguna de estas opciones te sirve o sino dame la correcta... sigo intentando.
Con respecto a la entrada de datos del nuevo cliente, creo que se puede utilizar la lógica de la siguiente sintaxis, haciéndole las modificaciones que sean a lugar
Sub Entrada_Datos_Varias_Casillas()
Dim Casilla As String
Dim Valor As String
Casilla = InputBox("En que casilla quiere entrar el valor?", "Entrar Casilla")
Texto = InputBox("Introducir un texto" & Chr(13) & "Para la casilla==>" & Casilla, "Entrada de Datos")
ActiveSheet.Range(Casilla).Value = Texto
ActiveSheet.Range("Ventas").NumberFormat = "$ #,##0.00;[Red]$ #,##0.00"
Yo también me encontré ante el mismo dilema de crear la carpeta desde una macro en excel. Pero pensé que con instrucciones de Visual se podría hacerlo.
En principio te comento que la carpeta existe. Ella esta dentro del la carpeta de trabajo en la siguiente ruta: C:/Ricardo Documentos/contratos/SLI S.A./AA Matriz para copia.
Como te comenté esa carpeta "AA Matriz para copia" contiene un libro de excel Denominado "Matriz XLS" y contiene el formato estándar para hacer el presupuesto para cada cliente nuevo que se incorpora a la compañía.
La macro, que debe ser activada desde el Libro de macros denominado "MAINMENU II" tiene el propósito de generar una rutina de trabajo para que al usuario le quede transparente el proceso de creación de un nuevo cliente.
En condiciones normales el usuario tendría que hacer manualmente los siguientes pasos:
1) Ir al explorador a la carpeta C:/Ricardo Documentos/Contratos/SLI S.A. y copiar la carpeta denominada "AA MATRIZ PARA COPIA".
2) Renombrar la carpeta con el nombre del nuevo cliente. (Para el ejemplo tomaremos a "Carvajal S.A.")
3) Entrar a la Carpeta Renombrada como "Carvajal S.A. y Renombrar el archivo de Excel "Matriz" que está contenido dentro de la carpeta, con las tres primeras letras del cliente nuevo (Para el ejemplo tomaremos CAR
4) Ir a "MAINMENU II" y colocar el nombre del nuevo cliente, de la ruta a seguir y el nombre del archivo en la primera celda libre que aparece en la lista de cliente de la empresa.
La macro que pretendo crear es ambiciosa y no se si sea probable; creo que si por las instrucciones de Visual funcionan en excel pero por fuera de él
Estuve intentando con una instrucción que investigué pero no comprendo la lógica de la sintaxis, quizá eso te pueda servir de guía y entre los dos logramos el objetivo. Te anexo la instrucción:
FileSystemObject.copyFolder
Este instrucción es para la operación de copiar una carpeta, lo que no entiendo es la logia del Objeto que debo involucrar.
Te agradecería me pudieras orientar en ese objetivo.
Saludos y gracias por colaborarme en este proceso.
Ricardo bolaños
Ricardo, que pena contigo el abandono pero no me había sentado a probar esto con juicio, bueno se me ocurrió la siguiente rutina... que el usuario abra el archivo matriz de copia... que haga lo que deba hacer y luego corra esta macro que crea un archivo y una carpeta con el mismo nombre (que obtiene de la celda activa).
Sólo debes modificarle lo de la celda que tome y la ruta en la que debe crear la carpeta... podrías adicionarle que cierre el libro si lo necesitas.
Sub ArchivoyCarpeta()
Dim Nombre As String
Dim Directorio As String
Nombre = ActiveCell.Value
Directorio = "C:\trabajo\Excel\Todoexpertos"
Set fs = CreateObject("Scripting.FileSystemObject")
ChDir Directorio
fs.createfolder (Nombre)
Directorio = Directorio & "\" & Nombre
ChDir Directorio
ActiveWorkbook.SaveAs Filename:=Nombre
Set fs = Nothing
End Sub
Nuevamente te pido disculpas por la superdemora pero a veces uno va dejando pasar las cosas
Gracias Cesar, voy aacondicionar y correr la macro en mi ejercicio y te comento.
El trabajo como tal ya lo entregue, pero es para enriquecer mis conocimientos, de tal suerte que tu ayuda es bienvenida y muchas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas