Ayuda con código vba para Copiar y Guardar Hojas

Tengo este código para seleccionar directorio para guardar 2 hojas a copiar:

Dim Titulo, Directorio As String
Sub SeleccionarDirectorio()
Titulo = "Selecciona la ruta de tu carpeta"
On Error Resume Next
'evitaría un error en caso de no seleccionar nada o pulsar ESC
With CreateObject("shell.application")
Directorio = .browseforfolder(0, Titulo, 0).Items.Item.Path
End With: On Error GoTo 0
'la siguiente instruccíon IF ejecuta una acción a modo de ejemplo
If Directorio = "" Then
MsgBox "No has marcado ningún directorio.", , "Operación no válida"
Else
MsgBox "Ha seleccionado la siguiente ruta " & Directorio
Hoja1.Range("p1") = Directorio
End If
End Sub

''''Hasta aqui todo bien''''''

Pero ahora quiero utilizar la dirección utilizada para guardar 2 hojas copiadas y guardarlas con el nombre"RCImport", tengo este código que encontré y lo estuve amoldando pero no me resulta

Sub Guardar()

ActiveSheet.DisplayPageBreaks = False
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
Sheets(Array("COMPRAS_CAB", "COMPRAS_DET")).Copy after:=Workbooks(otro).Sheets(Workbooks(otro).Sheets.Count)
Sheets("hoja1").Visible = False

Rem ActiveWorkbook.SaveAs Filename:="D:\RCImport.xls", FileFormat:=xlTemplate8
ActiveWorkbook.SaveAs Filename:="Directorio" & RCImport.xls, FileFormat:=xlTemplate8
'ActiveWorkbook.Close savechanges:=True

ActiveWorkbook.Close (False)
ActiveSheet.DisplayPageBreaks = True

End sub

1 Respuesta

Respuesta
1

Esta sería la macro

Sub Guardar()
    ActiveSheet.DisplayPageBreaks = False
    mio = ActiveWorkbook.Name
    ruta = Hoja1.Range("p1")
    Workbooks.Add
    otro = ActiveWorkbook.Name
    Workbooks(mio).Activate
    Sheets(Array("COMPRAS_CAB", "COMPRAS_DET")).Copy _
        after:=Workbooks(otro).Sheets(Workbooks(otro).Sheets.Count)
    Sheets("hoja1").Visible = False
    ActiveWorkbook.SaveAs Filename:=ruta & "\RCImport.xls" 
    ActiveWorkbook.Close (False)
    ActiveSheet.DisplayPageBreaks = True
End Sub

Notas:

1. Estoy almacenando en la variable ruta la dirección que la primera macro almacenó en la hoja1 celda "P1"

2. Estoy guardando el libro como normal en esta línea

ActiveWorkbook.SaveAs Filename:=ruta & "\RCImport.xls"

Si lo quieres como platilla en excel 2007, cambia la línea por esta

ActiveWorkbook.SaveAs Filename:=ruta & "\RCImport.xls", FileFormat:=xlTemplate8

Saludos. Dante Amor

No olvides valorar la respuesta

Hola Dam, cuando ejecuto el código me sale el siguiente mensaje:

se ha producido '1004' en tiempo de ejecuición:
no se puede tener acceso al archivo. intente lo siguiente:

*compruebe que la carpeta especifica existe
*compruebe que la carpeta que contiene el archivo no es de solo lectura
*compruebe que el archivo no contiene ninguno de los siguientes caracteres:<>? o *

me depuera en esta linea de codigo
ActiveWorkbook.SaveAs Filename:=ruta & "\RCImport.xls"

Primero debes ejecutar la macro SeleccionarDirectorio, para que te ponga el directorio en al celda P1 y luego ejecutas la macro que te envié.

Supongo que ambas macros trabajan con el mismo libro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas