Excel - Completar esta macro

 
Vista:
sin imagen de perfil
Val: 44
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Completar esta macro

Publicado por santi (24 intervenciones) el 03/12/2018 13:34:33
Hola expertos,

Tengo esta macro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub CREARCARPETAOFERTA()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
 Ruta = Range("J1")
 arch = Sheets("DATOS ").Range("I1")
If Dir(Ruta & "\" & arch, vbDirectory) = "" Then
   MkDir Ruta & "\" & arch
ActiveWorkbook.SaveAs Filename:=Ruta & "\" & arch & "\" & Sheets("DATOS ").Range("I2")
End If
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = True
Application.CutCopyMode = False
End Sub

Funciona muy bien. El problema es que, si ya existe la carpeta con el nombre que le he dado en la celda "I1" no hace nada, y necesito que me guarde dentro el archivo con el nuevo nombre de archivo que hay en la celda "I2".

Muchas gracias
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
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Completar esta macro

Publicado por Antoni Masana (2481 intervenciones) el 04/12/2018 10:00:11
Solo hace falta un Pequeño cambio

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub CREARCARPETAOFERTA()
    Application.ScreenUpdating = False
 
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
 
    Ruta = Range("J1")
    arch = Sheets("DATOS ").Range("I1")
 
    If Dir(Ruta & "\" & arch, vbDirectory) = "" Then MkDir Ruta & "\" & arch
    ActiveWorkbook.SaveAs Filename:=Ruta & "\" & arch & "\" & Sheets("DATOS ").Range("I2")
 
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ActiveSheet.DisplayPageBreaks = True
    Application.CutCopyMode = False
End Sub

Y para ser mas correcto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub CREARCARPETAOFERTA()
    Dim Ruta as String, Arch as String
 
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
 
    Ruta = Range("J1") & "\" & Sheets("DATOS ").Range("I1")
    Arch = Sheets("DATOS ").Range("I2")
 
    If Dir(Ruta, vbDirectory) = "" Then MkDir Ruta
    ActiveWorkbook.SaveAs Filename:=Ruta & "\" & Arch
 
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ActiveSheet.DisplayPageBreaks = True
    Application.CutCopyMode = False
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 44
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Completar esta macro

Publicado por santi (24 intervenciones) el 10/12/2018 17:34:27
Muchas gracias por la respuesta. Funciona perfectamente. Lo que me pasa ahora es que guarda el archivo en la carpeta aunque ya exista, y entonces tengo dos archivos con el mismo nombre. Que le debo añadir a la macro para que si ya existe el archivo con ese nombre, guarde el actual y elimine el anterior.

A veces hago pequeñas modificaciones en el archivo sin guardarlo como una revisión, por lo que me interesa que si tiene el mismo nombre me guarde el último.

Muchas gracias, sois de gran ayuda.
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
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Completar esta macro

Publicado por Antoni Masana (2481 intervenciones) el 10/12/2018 17:57:54
No entiendo como puedes crear dos archivos con el mismo nombre.

Eso es imposible.

Cuando Excel salva un archivo con con un nombre de archivo que ya existe sobre escribe el viejo pero antes te pregunta si estas de acuerdo.

Puede existir un archivo POPO.XLSX y un archivo POPO.XLSM incluso un archivo POPO.XLSB y ser el mismo o diferentes.

Pero NO pueden existir 2 archivos POPO.XLSX o 2 archivos POPO.XLSM o 2 archivos POPO.XLSB en el mismo directorio.

A qui hay algo que no cuadra.

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