Ejecutar una macro varias veces sin cerrar sesión

Por favor quisiera saber como hacer la macro siguiente:
Copiar la hoja1 de un libro que tengo abierto que se llama factura.xls, pegarla en un libro nuevo, este libro nuevo que se guarde con el nombre que tome de la celda A1 de la hoja1 del libro factura.xls, una vez hecho, que yo pueda volver a ejecutar la macro (cambiando los datos que considere oportunos así como el valor de la celda A1 de la hoja1 del libro factura.xls)sin haber cerrado la sesión del libro factura.xls que sigue abierto.
Muchas gracias por tu atención

1 Respuesta

Respuesta
1
Bueno acá le dejo una rutina espero sea lo que necesita, debe copiarla tal cual y dirigirse al libro factura, realizar la combinación de teclas Alt + F11, crear un modulo, dentro del editor de visual basic despliega las opciones del menu insertar y elige modulo, luego pega el código y si desea en la hoja inserta alguna autoforma y le asigna la macro o inserta un botón activeX y le asigna la macro y listo ya esta, a continuación el código:
Sub copiarHojaYguardarLibro()
    'guardamos el valor del rango A1
    nomArchivo = Sheets("Hoja1"). Range("A1"). Value
    'seleccionamos la hoja1 y la guardamos en otro libro
    Sheets("Hoja1").Select
    Sheets("Hoja1").Copy
    'al nombre del nuevo archivo le agregamos la extension
    guardar = nomArchivo & ".xls"
    'indicamos la ruta donde guardar el libro y guardamos
    ChDir "C:\Documents and Settings\Administrador\Escritorio"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Documents and Settings\Administrador\Escritorio\" & guardar, FileFormat:= _
        XlOpenXMLWorkbook, CreateBackup:=False
'volvemos al libro factura y nos posicionamos en el rango A1
    Windows("factura.xlsm").Activate
    Range("A1").Select
End Sub
Si le ha sido de utilidad la respuesta, por favor no se olvide puntuar y finalizar la consulta, de lo contrario, no finalice su consulta hasta obtener el resultado deseado, que tenga un feliz día!
  _??? /?/
__???/?/.
__?? /?/????
__????|????.
?-? Saludos!
?
?.
__???????
Muchas gracias la solución es perfecta
Podría decirme si es tan amable que hay que modificar en esta macro para que el nuevo libro creado con el nombre de la celda A1 del libro factura.xlsm, no tenga la autoforma que inserte para ejecutar la macro (inserte una autoforma en el libro factura.xlsm y le asigne esta macro)
La macro seria la siguiente:
Sub copiarHojaYguardarLibro() 
    'guardamos el valor del rango A1
    nomArchivo = Sheets("Hoja1"). Range("A1"). Value 
    'seleccionamos la hoja1 y la guardamos en otro libro 
    Sheets("Hoja1").Select 
    Sheets("Hoja1"). Copy
    'al nombre del nuevo archivo le agregamos la extensión
guardar = nomArchivo & ".xls"
'indicamos la ruta donde guardar el libro y guardamos
    ChDir "C:\Documents and Settings\Administrador\Escritorio" 
    ActiveWorkbook.SaveAs Filename:= _ 
        "C:\Documents and Settings\Administrador\Escritorio\" & guardar, FileFormat:= _ 
        xlOpenXMLWorkbook, CreateBackup:=False 
ActiveSheet.Shapes("nombre de la autoforma").Delete
    'volvemos al libro factura y nos posicionamos en el rango A1 
    Windows("factura.xlsm").Activate 
    Range("A1").Select 
End Sub
Donde dice nombre de la autoforma, allí va a poner el nombre de la autoforma que aparece arriba del rango A1 y listo esta la macro preparada para que la pueda utilizar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas