| |||
Macro de Excel Necesito saber si es posible hacer una macro para excel para que dado un libro con varias hojas, pueda generar automaticamente un libro nuevo por cada hoja del libro anterior |
| |||
Re: Macro de Excel Muchas gracias, lo he probado y va perfecto. Por cierto se podria hacer tambien que la macro se ejecutase al cerrar el excel en vez de tener que ejecutarla desde Herramientas-->Macro-->Macros De verdad mrofc muchas gracias no tenia ni idea de macros de excel y necesitaba hacer esto. Un saludo. |
| ||||
Re: Macro de Excel Pues, usando el mismo codigo de mrocf: Sub auto_close() Application.ScreenUpdating = False MyBook = ActiveWorkbook.Name For ii = 1 To Sheets.Count Workbooks(MyBook).Sheets(ii).Copy Next Application.ScreenUpdating = True End Sub Otra opcion es que coloques un boton de la barra de formularios en tu hoja, y le asignes la macro en cuestion. Abraham |
| ||||
Re: Macro de Excel Hola! Supongo que tu "poder de observación" te habrá permitido observar que el código correctamente realizado por abrahamvj es similar al que te aportara previamente... excepto el nombre del procedimiento: auto_close. Como dices estar recién entrando al "mundo" de las macros, te amplío diciendo que existen 4 nombres de procedimientos que están reservados con exclusividad: Auto_abrir, Auto_cerrar, Auto_activar y Auto_desactivar Como sus nombres lo indican, se ejecutan AUTOMÁTICAMENTE ante tales eventos sin necesidad alguna de intervención del usuario. Saludos |
| |||
Re: Macro de Excel Perdonar otra vez, sabeis tambien alguno como se hace para que los libros generados a partir de las hojas del libro original tomen el nombre de la hoja directamente y no por defecto "Libronº". Si sabeis de alguna pagina o tutorial para aprender un poco sobre macros os agradeceria mucho, para no estar dando la lata tanto por el foro. Un saludo |
| ||||
Re: Macro de Excel Veamos: los libros definen su nombre a partir que son "guardados" en el disco. De este modo, y para satisfacer tu necesidad, deberías indicar un par de cuestiones tales como: a) ¿En que carpeta deseas grabar a los libros generados (por ejemplo: C:\Mis Documentos\Mis Informes)? b) En la carpeta antes mencionada, ¿podría ocurrir que existan otros libros con el mismo nombre? ¿Sí / No?... Y en caso de ser "Sí" la respuesta: ¿qué hacer en tal caso? Indícanos estas cuestiones y veremos como complementar lo que te hemos mostrado. Y en otro órden de cosas: te sugiero que te introduzcas en el tema activando la grabadora de macros y estudiando lo que de ello resulta con la ayuda en línea del propio programa... Es un buen comienzo. Saludos |
| |||
Re: Macro de Excel Gracias,lo tendre en cuenta y lo activare. En cuanto a las cuestiones que me dices, da igual donde se guarden no hace falta que sea una ruta por defecto y si donde se guardan hay ya algun libro con el mismo nombre que se sobreescriba sobre el antiguo. |
| ||||
Re: Macro de Excel Bueno, se viene la versión final:
Código:
COMENTARIOS:Sub Auto_Close() Application.ScreenUpdating = False MyBook = ActiveWorkbook.Name MiPath = ActiveWorkbook.Path If MiPath = "" Then MiPath = "C:" For ii = 1 To Sheets.Count Workbooks(MyBook).Sheets(ii).Copy Application.DisplayAlerts = False ActiveWorkbook.Close SaveChanges:=True, _ FileName:=MiPath + "\" + ActiveSheet.Name Application.DisplayAlerts = True Next Application.ScreenUpdating = True End Sub MiPath = ActiveWorkbook.Path Indica donde está ubicado el archivo donde residen las hojas a guardar If MiPath = "" Then MiPath = "C:" Si el archivo anterior no había sido guardado, entonces las nuevas hojas se guardan en "C:\". Application.DisplayAlerts = False Si ya existiesen hojas con el mismo nombre, la aplicación consultaría lo habitual (El archivo 'tal' existe ¿Desea reemplazarlo?). Con esta propiedad se impide tal mensaje. Saludos |