| 
 | |||
|  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 |