Visual Basic - copiar y pegar celdas desde xls a xlsm

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 18 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

copiar y pegar celdas desde xls a xlsm

Publicado por MIGUEL (1 intervención) el 01/03/2019 12:59:26
Hola, estoy intentando desde un botón de una macro copiar los datos de una hoja de un archivo xls a la hoja de la macro. Mi problema viene que cuando ejecuto la macro y accede a la hoja que quiero copiar, los números cambian de formato, es decir, donde pone 30.780 me lo cambia a 30,78. Soy nuevo en esto y quizás esté pasando algo por alto.
La macro es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub IMPORTARSAP()
'
' IMPORTARSAP Macro
Dim HOJA As Workbook
    Set HOJA = Workbooks.Open("C:\Users\auto_jcblanco\Desktop\SAP.XLS", True)
    Windows("SAP.XLS").Activate
    HOJA.Sheets("SAP").Select
    Range("A1:K80").Select
    Selection.NumberFormat = "General"
    Selection.Copy
    Windows("CONTROL SALIDAS.xlsm").Activate
    Range("A40").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("A1").Select
    Windows("SAP.XLS").Activate
    ActiveWindow.Close
End Sub

He intentado cambiarlo de ".xls" a ".xlsx", pero me da error al intentar abrir el archivo ".xlsx"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub ABC()
'
' ABC Macro
Dim LIBRO As Workbook
    Set LIBRO = Workbooks.Open("C:\Users\auto_jcblanco\Desktop\SAP.XLS")
    Windows("SAP.XLS").Activate
    Rutaarchivo = "C:\Users\auto_jcblanco\Desktop\"
    nombrearchivo = "SAP"
    LIBRO.SaveAs Filename:=Rutaarchivo & nombrearchivo & ".xlsm", FileFormat:=51
    ActiveWindow.Close
Dim HOJA As Workbook
    Set HOJA = Workbooks.Open("C:\Users\auto_jcblanco\Desktop\SAP.xlsx")
    Windows("SAP.xlsx").Activate
    HOJA.Sheets("SAP").Select
    Range("A1:K80").Select
    Selection.Copy
    Windows("CONTROL SALIDAS.xlsm").Activate
    Worksheets("CONTROL ENVASE").Range("A40").PasteSpecial xlPasteAll
    ActiveCell.PasteSpecial xlPasteFormats
    Application.CutCopyMode = False
    Windows("SAP.xlsx").Activate
    ActiveWindow.Close
 
End Sub

Cual es la mejor solución?

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: 1.260
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

copiar y pegar celdas desde xls a xlsm

Publicado por Antoni Masana (465 intervenciones) el 02/03/2019 08:18:48
Hay dos opciones: Copiar valores y copiar formato o dar nuevo formato después de copiar.

Por otro lado abrir desde un archivo .XLS un archivo .XLSM es anacronico, el primero es de 2003 y el segundo si no recuerdo mal de 2007 y no permite abrir un archivo con formato del futuro, aunque EXCEL sea de 2016.
Si el primero lo ejecutas en un Excel 2003 no funcionara porque esa versión no reconoce el formato XLSM y ya te esta avisando.

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