Unir dos Macros en una sola
Publicado por Jorge (2 intervenciones) el 13/03/2018 22:02:34
Hola Amigos! Necesito unir dos macros en una sola. Una crea un archivo de excel nuevo y la otra copia las celdas de un archivo y lo guarda en este:
Macro que copia las celdas
***Lo que me gustaría es tener todo esto en una sola macro y que mi actual "macro 2" seleccione el archivo previamente creado y no uno especifico como esta ahorita.
Gracias
Macro que crea el archivo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Sub createNewWorkbook()
Dim newBook As Workbook
Dim newSheet As Worksheet
Dim name As String
Set newBook = Workbooks.Add
With newBook
NombreArchivo = name
GuardarComo = Application.GetSaveAsFilename(InitialFileName:=NombreHoja, _
fileFilter:="Libro de Excel(*.xlsx), *.xlsx, Libro de Excel habilitado para macros(*.xlsm), *.xlsm, Libro de Excel 97-2003(*.xls), *.xls,CSV (delimitado por comas)(*.csv),*.csv", _
Title:="EXCELeINFO - guadar hoja activa como archivo nuevo.")
If GuardarComo = False Then
Workbooks(NombreArchivo).Close SaveChanges:=False
Else
With Application.WorksheetFunction
Extension = .Trim(Right(.Substitute(GuardarComo, ".", .Rept(" ", 500)), 500))
End With
Select Case Extension
Case Is = "xlsx"
ActiveWorkbook.SaveAs GuardarComo
Case Is = "xlsm"
ActiveWorkbook.SaveAs GuardarComo, xlOpenXMLWorkbookMacroEnabled
Case Is = "xls"
ActiveWorkbook.SaveAs GuardarComo, xlExcel8
Case Is = "csv"
ActiveWorkbook.SaveAs GuardarComo, xlCSV
Case Else
ActiveWorkbook.SaveAs GuardarComo
End Select
End If
End With
Set newSheet = newBook.Sheets.Add
newSheet.Cells(1, 1).Value = "You have created a new Workbook"
newBook.Close (True)
End Sub
Macro que copia las celdas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub CopiarCeldas()
Dim wbDestino As Workbook, _
wsOrigen As Excel.Worksheet, _
wsDestino As Excel.Worksheet, _
rngOrigen As Excel.Range, _
rngDestino As Excel.Range
Set wbDestino = Workbooks.Open("C:\Users\Jorge\Desktop\Training\Libro5.xlsx")
ThisWorkbook.Activate
Set wsOrigen = Worksheets("Carga")
Set wsDestino = wbDestino.Worksheets("Hoja1")
Const celdaOrigen = "A1"
Const celdaDestino = "A1"
Set rngOrigen = wsOrigen.Range(celdaOrigen)
Set rngDestino = wsDestino.Range(celdaDestino)
rngOrigen.Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
rngDestino.PasteSpecial xlPasteValues
Application.CutCopyMode = False
wbDestino.Save
wbDestino.Close
End Sub
***Lo que me gustaría es tener todo esto en una sola macro y que mi actual "macro 2" seleccione el archivo previamente creado y no uno especifico como esta ahorita.
Gracias
Valora esta pregunta


0