¿Cómo guardar sólo una hoja de excel con un nombre predefinido mas la fecha?

Quisiera saber como lo puedo hacer para guardar una hoja de excel en el escritorio con un nombre predefinido mas la fecha correspondiente al mes en que se guardo mas el año ej: hoja de cuenta noviembre 2012 o hoja de cuenta diciembre 2012... Etc.

1 Respuesta

Respuesta
1

Te mando mi solución. Posiciónate en la pestaña que quieras guardar y después ejecuta esta macro:

Es probable que tengas que cambiar el path de tu escritorio. el mio es:

C:\Users\Luis\Desktop\

Sub ejemplo()
'por luismondelo
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
ActiveSheet.Copy before:=Workbooks(otro).Sheets(1)
ActiveWorkbook.SaveAs "C:\Users\Luis\Desktop\Hoja de_" & Month(Date) & "-" & Year(Date)
ActiveWorkbook.Close False
End Sub

recuerda finalizar la consulta

Luis probé el código y esta super bien, pero el problema que hay es que la fecha la guarda como numero y la idea es que la guarde en palabras ej: hoja de calculo enero 2013, hoja de calculo febrero 2013 etc etc..

Te mando la nueva macro para poner los nombres de los meses:

(Recuerda finalizar la consulta por favor)

Sub ejemplo2()
'por luismondelo
mes = Month(Date)
Select Case mes
Case Is = 1
mes = "enero"
Case Is = 2
mes = "febrero"
Case Is = 3
mes = "marzo"
Case Is = 4
mes = "abril"
Case Is = 5
mes = "mayo"
Case Is = 6
mes = "junio"
Case Is = 7
mes = "julio"
Case Is = 8
mes = "agosto"
Case Is = 9
mes = "septiembre"
Case Is = 10
mes = "octubre"
Case Is = 11
mes = "noviembre"
Case Is = 12
mes = "diciembre"
End Select
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
ActiveSheet.Copy before:=Workbooks(otro).Sheets(1)
ActiveWorkbook.SaveAs "C:\Users\Luis\Desktop\Hoja de_" & mes & "-" & Year(Date)
ActiveWorkbook.Close False
End Sub

Gracias Luis es lo que necesito, pero tengo una duda, siempre cuando se guarda la hoja al abrirla nuevamente aparecen en un libro de excel?

¿Y cómo debería aparecer?

Tu lo querías en un archivo independiente

Si, pero pensé que cuando se guardaba una hoja al abrirla aparecía solo la hoja que se guardo y no mas hojas (digo esto porque cuando guardo la hoja y después la abro aparecen las pestañas de Hoja1, Hoja2, Hoja3), la pregunta estimado Luis es asi como siempre aparece?

Ahora te entendí, te paso la nueva macro para arreglar ese problema

(Recuerda finalizar la consulta)

Sub ejemplo2()
'por luismondelo
mes = Month(Date)
Select Case mes
Case Is = 1
mes = "enero"
Case Is = 2
mes = "febrero"
Case Is = 3
mes = "marzo"
Case Is = 4
mes = "abril"
Case Is = 5
mes = "mayo"
Case Is = 6
mes = "junio"
Case Is = 7
mes = "julio"
Case Is = 8
mes = "agosto"
Case Is = 9
mes = "septiembre"
Case Is = 10
mes = "octubre"
Case Is = 11
mes = "noviembre"
Case Is = 12
mes = "diciembre"
End Select
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
ActiveSheet.Copy before:=Workbooks(otro).Sheets(1)
for x=2 to sheets.count
sheets(x).delete
next
ActiveWorkbook.SaveAs "C:\Users\Luis\Desktop\Hoja de_" & mes & "-" & Year(Date)
ActiveWorkbook.Close False
End Sub

Luis, sabes lo probé y al comienzo resulta guarda la hoja activa (la que quiero que guarde) y después me aparece un mensaje con la cual se va eliminando las hojas (1,2,3) al hacer click en aceptar y terminando esta instrucción me arroja un error.

Luis un amigo me mando este código, pero lo único malo que no me guarda con el nombre del mes ni el del año, pero si me guarda una sola hoja, a lo mejor se pueden complementar puedes chequearlo.

Sub Ejemplo()
ruta = ThisWorkbook.Path
mes = Month(Date)
For Each sh In Sheets
If sh.Name <> "Hoja1" Then
nbre = "MODO PRUEBA" & mes & " de " & sh.Range("B17")
sh.Copy
Application.DisplayAlerts = False
Set wb = ActiveWorkbook
On Error Resume Next
With wb
.SaveAs ruta & "\" & nbre & ".xls"
.Close True
End With
Set wb = Nothing
Application.DisplayAlerts = False
sh.Delete
End If
Next
Sheets("Hoja1").Select
End Sub

Gracias por tu tremenda ayuda.

Disculpa he hecho unas correcciones en mi macro, ahora funciona perfectamente. Esta es la correcta:

Sub ejemplo2()
'por luismondelo
Application.DisplayAlerts = False
mes = Month(Date)
Select Case mes
Case Is = 1
mes = "enero"
Case Is = 2
mes = "febrero"
Case Is = 3
mes = "marzo"
Case Is = 4
mes = "abril"
Case Is = 5
mes = "mayo"
Case Is = 6
mes = "junio"
Case Is = 7
mes = "julio"
Case Is = 8
mes = "agosto"
Case Is = 9
mes = "septiembre"
Case Is = 10
mes = "octubre"
Case Is = 11
mes = "noviembre"
Case Is = 12
mes = "diciembre"
End Select
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
ActiveSheet.Copy before:=Workbooks(otro).Sheets(1)
For x = 2 To Sheets.Count
Sheets(2).Delete
Next
ActiveWorkbook.SaveAs "C:\Users\Luis\Desktop\Hoja de_" & mes & "-" & Year(Date)
ActiveWorkbook.Close False
End Sub

Luis una vez mas te pasaste, muchas gracias amigo, una vez mas has logrado ayudarme de una manera impagable, hasta pronto . Te dejo un tremendo saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas