Visual Basic para Aplicaciones - Save as en excel

Life is soft - evento anual de software empresarial
 
Vista:

Save as en excel

Publicado por Rocío (4 intervenciones) el 12/10/2005 20:03:47
Tengo el siguiente código para guardar una hoja en específico de un workbook a un nuevo wokbook:

Sub guardarNóminaSemanal()
On Error GoTo errorhandler
Sheets("Nómina Semanal").Copy
Dim fechaNS As String
fechaNS = Sheets("Nómina Semanal").Range("A3").Formula
ActiveWorkbook.SaveAs "C:\Documents and Settings\roxy_rose\Desktop\Nóminas\" & fechaNS & ".XLS"
ActiveWorkbook.Save
ActiveWorkbook.Close

Exit Sub
errorhandler:
MsgBox ("Un error ha ocurrido, la hoja no pudo ser guardada.")
End Sub

Sé que esta no es la mejor manera de hacerlo, incluso algunas veces me tira error.
¿Alguien me provee alguna opción más efictiva para hacerlo?

Les agradecería mucho su ayuda.

Rocío
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Save as en excel

Publicado por Mauricio Baeza (262 intervenciones) el 12/10/2005 20:44:18
Hola Rocio, el codigo se ve bien, que error te muestra??, checa que tu variable donde guardar la fecha, este bien formateda, recuerda que algunos caracteres no los acepta windows como nombres de archivo...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Save as en excel

Publicado por Rocío (4 intervenciones) el 12/10/2005 23:01:56
Los errores q me tiran son cuando el archivo ya ha sido creado o cuando el folder no existe, me gustaría q creara el folder si no existe.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Save as en excel

Publicado por Mauricio Baeza (262 intervenciones) el 15/10/2005 00:57:29
Hola Rocio, como vez, entre mas clara sea tu exposicion del problema, mas rapido alguien en el foro te puede contestar...

La siguiente macro hace lo que quieres...
Si no existe la carpeta, pregunta si deseamos crearla
Si existe el archivo, pregunta si lo sobreescribimos...

Saludos...

Option Explicit

Public Sub GuardarNominaSemanal()
Dim sRuta As String
Dim sRutaCompleta As String
Dim iRes As Integer
Dim sCarpeta As String
Dim sTmp As String
Dim sArchivo As String

sArchivo = Format(Date, "dd-mmm-yy") & ".xls"
sCarpeta = "Nomina"
sRuta = ActiveWorkbook.Path
sTmp = sRuta & Application.PathSeparator & sCarpeta
If Len(Dir(sTmp, vbDirectory)) = 0 Then
iRes = MsgBox("No existe la carpeta: " & sCarpeta & vbCrLf & _
"En la ruta: " & sRuta & vbCrLf & vbCrLf & _
"Deseas crearla", vbYesNo, "Crear carpeta")
If iRes = vbYes Then
MkDir sTmp
Else
MsgBox "El archivo NO se guardo"
Exit Sub
End If
End If
sRutaCompleta = sTmp & Application.PathSeparator & sArchivo
If Len(Dir(sRutaCompleta)) = 0 Then
Worksheets("Nomina").Copy
ActiveWorkbook.SaveAs sRutaCompleta
ActiveWorkbook.Close
Else
iRes = MsgBox("El archivo: " & sArchivo & vbCrLf & _
"En la ruta: " & sRuta & vbCrLf & vbCrLf & _
"YA existe, deseas sobreescribirlo", vbYesNo, "Archivo existente")
If iRes = vbYes Then
Kill sRutaCompleta
Worksheets("Nomina").Copy
ActiveWorkbook.SaveAs sRutaCompleta
ActiveWorkbook.Close
Else
MsgBox "El archivo NO se guardo"
End If
End If

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Save as en excel

Publicado por Rocío (4 intervenciones) el 15/10/2005 23:42:47
Muchísimas gracias Mauricio!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar