Como unir estas dos macros

Tengo estas dos macros que me funcionan, y las quiero unir en una sola que las ejecute seguidas. Las macros son:

Sub COPIAHOJA()

Dim Ruta As String, Nomb As String, Nomb2 As String, Exte As String, Hoja As String, YoSoy As String, Hoja2 As String, Hoja3 As String, Hoja4 As String
Ruta = "P:\BaseTecnico\1-DOCUMENTOS REFERENCIA\"
Nomb = "Master XXXX-M-XXX CLIENTE-OBRA"
Nomb2 = "Master XXXX-M-XXX CLIENTE-OBRA1"
Exte = ".xltm"
Hoja = "COM_EQUIPO"
Hoja2 = "COM_EQUIPOS"
Hoja3 = "COM_ADMIN"
Hoja4 = "COM ADMIN"
YoSoy = ActiveWorkbook.Name
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Workbooks.Add Template:=Ruta + Nomb + Exte
Windows(YoSoy).Activate
Sheets(Hoja).Select
Sheets(Hoja).Copy Before:=Workbooks(Nomb2).Sheets(3)
Range("A2:F419").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False
Sheets(Hoja2).Select
ActiveWindow.SelectedSheets.Delete
Windows(YoSoy). Activate
Sheets(Hoja4). Activate
Range("C10:D135").Select
Selection. Copy
Windows("Master XXXX-M-XXX CLIENTE-OBRA1"). Activate
Sheets(Hoja3). Activate
Range("C10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.ScreenUpdating = True
End Sub

Y la otra es:

Sub crearcarpeta2()
'Por.DAM
Ruta = "C:\Users\SantiQuirante\Desktop"
arch = Range("C3")
If Dir(Ruta & "\" & arch, vbDirectory) = "" Then
MkDir Ruta & "\" & arch
ActiveWorkbook.SaveAs Filename:=Range("C4")
End If
End Sub

Me facilitaría mucho el trabajo que se ejecutasen seguidas, en el orden en que las he escrito antes.

Por otro lado, la segunda macro, me crea la carpeta y el archivo en el escritorio y lo que necesitaría es que el archivo lo guardara dentro de la carpeta.

2 respuestas

Respuesta
1

Al final de la primera macro que se ejecute usa call

call mimacro

y listo

Respuesta
1

Una manera rápida y sencilla para no tocar mucho las macros seria llamarlas desde otra macro =)

Sub AmbasMacros()
Application.ScreenUpdating = False
    Call COPIAHOJA
    Call crearcarpeta2
    Exit Sub
Application.ScreenUpdating = True
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas