Macro para guardar una hoja de un libro

Elsa, muy buenas noches, tengo el siguiente problema:
En excel yo genero con una tabla dinámica 200 estados de cuenta, los cuales tengo que individualizar, es decir, cada una de estas hojas tiene un nombre, por ejemplo: LUIS BARRAGAR LOPERENA, es una hoja, y así hasta los 200 estados de cuenta, lo que necesito es una macro para cortar esa hoja del libro de excel origen, proteger el nuevo libro con una contraseña "xxxx", guardar el estado de cuenta individual con la siguiente estructura: "Estado de cuenta Agosto de LUIS BARRAGÁN LOPERENA", cada mes tengo que hacer el estado de cuenta, así es que el mes siguiente seria la misma estructura cambiando el mes de agosto por el de septiembre.
El nombre de mi cliente esta en la celda B17 en todos los estados de cuenta.

1 respuesta

Respuesta
1
Este rutina que adjunto crea un libro de la hoja activa, con las características que mencionas.
Algunos datos quedaron como valor de variables, para que las ajustes a gusto, como ruta y mes.
Sub LibroCtas()
'desarrollada por Elsamatilde
'definir la ruta
ruta = ThisWorkbook.Path   'ruta del libro activo
mes = Month(Date)              'mes de la fecha actual
nbre = "Estado de cuenta del mes " & mes & " de " & ActiveSheet.Range("B17")
ActiveSheet.Copy
Application.DisplayAlerts = False
Set wb = ActiveWorkbook   'se genera 1 libro como copia de la hoja
'por error (ya existe archivo o nbre inválido) muestra ventana para cambiar nbre o ruta
On Error Resume Next
With wb
.SaveAs ruta & "\" & nbre & ".xls"    'se guarda y cierra el libro creado
.Close True
End With
Set wb = Nothing
ActiveSheet.Delete    'se elimina la hoja
Application.DisplayAlerts = False
Sheets("Hoja1").Select     'se vuelve a la hoja1
End Sub
Para hacerlo para todas las hojas al mismo tiempo, necesitarás un bucle que recorra el libro y omita la hoja1 que será la principal a donde regresa el proceso. Confírmame si necesitas este bucle o lo harás por tandas.
Elsa, te agradezco mucho el tiempo que ocupas en los problemas de los demás, si no es mucha la molestia, me gustaría que la macro funcionara de tal forma generara exactamente como bien lo haz hecho pero los 200 estados de cuenta. Así como dices que se haga un bucle. Ya que antes de este previo genero otro tipo de macros, que forman parte de la presentación y ajuste de columnas, así como el calculo correspondiente. Y quedaría un trabajo si se hiciera con el bucle final.
Nuevamente agradezco tu atención.
Aquí va con el bucle entonces:
Sub LibroCtas()
'desarrollada por Elsamatilde
'definir la ruta
ruta = ThisWorkbook.Path   'ruta del libro activo
mes = Month(Date)          'mes de la fecha actual
'recorro todas las hojas a excepción de la hoja1
For Each sh In Sheets
If sh.Name <> "Hoja1" Then
nbre = "Estado de cuenta del mes " & mes & " de " & sh.Range("B17")
sh.Copy
Application.DisplayAlerts = False
Set wb = ActiveWorkbook   'se genera 1 libro como copia de la hoja
'por error (ya existe archivo o nbre inválido) muestra ventana para cambiar nbre o ruta
On Error Resume Next
With wb
.SaveAs ruta & "\" & nbre & ".xls"    'se guarda y cierra el libro creado
.Close True
End With
Set wb = Nothing
Application.DisplayAlerts = False
sh.Delete    'se elimina la hoja
End If
Next
Sheets("Hoja1").Select     'se vuelve a la hoja1
End Sub
Ya ha pasado 1 semana desde que te enviara la última respuesta. Si el tema quedó concluido, no olvides finalizar la consulta
Sdos
Elsa
Elsa, muchas gracias por la atencón que presto a mi problema, quedo satisfecho y ya aplique su macro y funciona de maravilla, el tema es muy extenso y no me gustaría quitarle más de su valiosísimo tiempo, tal vez un poco más adelante.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas