Visual Basic para Aplicaciones - Copiar celdas de un libro a otro con tabla

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Copiar celdas de un libro a otro con tabla

Publicado por Rodolfo (1 intervención) el 14/01/2016 15:04:28
Hola a todos, quiero resolver algunas dudas de cómo copiar celdas de un libro a otro.
1.- El libro de destino tiene una tabla y requiero que los datos pegados sean añadidos a esta.
2.- En el libro de origen tengo 5 filas en las cuales en la primera columna están los números 1 al 5 (estos se llenan con otra macro) y quiero que copie ciertas celdas dependiendo si están estos valores en la primera columna
3.-Modificar la macro de forma tal de que si el libro de destino ya está abierto no lo intente abrir de nuevo

He estado trabajando con esta macro y creo que es la más conveniente, me ha funcionado, pero solo poniendo rangos de celda directamente

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
39
40
41
42
Sub CopiarCeldas()
'Esta macro permite copiar celdas desde Solicitud 2016 hacia INGRESO MUESTRAS 2016
 
'Definir objetos a utilizar
Dim wbDestino As Workbook, _
    wsOrigen As Excel.Worksheet, _
    wsDestino As Excel.Worksheet, _
    rngOrigen As Excel.Range, _
    rngDestino As Excel.Range
 
'Indicar el libro de Excel destino
Set wbDestino = Workbooks.Open(ActiveWorkbook.Path & "\IMUESTRAS16.xlsm")
 
'Activar este libro
ThisWorkbook.Activate
 
'Indicar las hojas de origen y destino
Set wsOrigen = Worksheets("Matriz")
Set wsDestino = wbDestino.Worksheets("INGRESO MUESTRAS")
 
'Indicar la celda de origen y destino
Const celdaOrigen = "A2:S6"
'Const celdaDestino = última fila de tabla
'Inicializar los rangos de origen y destino
Set rngOrigen = wsOrigen.Range(celdaOrigen)
Set rngDestino = wsDestino.Range(celdaDestino)
 
'Seleccionar rango de celdas origen
rngOrigen.Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
 
'Pegar datos en celda destino
rngDestino.PasteSpecial xlPasteValues
Application.CutCopyMode = False
 
'Guardar y cerrar el libro de Excel destino
wbDestino.Save
wbDestino.Close
 
End Sub
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 GERARDO
Val: 8
Ha disminuido su posición en 72 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Copiar celdas de un libro a otro con tabla

Publicado por GERARDO (22 intervenciones) el 14/06/2016 23:31:45
Hola

No soy nada experto en VBA pero creo puedo ayudarte

Para copiar el rango usa el siguiente código

1
2
3
Dim rngOrigen As Range
 
Set rngOrigen = Hoja1.Range("a2:s" & Hoja1.UsedRange.Rows.Count)
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