Saltar al contenido

Macro para copiar datos a otro libro de excel (ayuda)


Recommended Posts

publicado

hola amigos tengo un problema deseo copiar datos de un libro excel a otro con un simple boton eh leido en otras guias como se hace incluso baje unas hojas de muestra donde ya posee el codigo hecho y funciona a la perfeccion ahora! yo quiero cambiar de ruta pero me da un error al consultar la informacion con el creador el me indica que cambie una formula al cambiarla me da error de sintax a ver si ustedes me pueden ayudar

1: formula original

Sub CopiarCeldas()

'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 & "\LibroDestino.xlsx")

'Activar este libro
ThisWorkbook.Activate

'Indicar las hojas de origen y destino
Set wsOrigen = Worksheets("Origen")
Set wsDestino = wbDestino.Worksheets("HojaDestino")

'Indicar la celda de origen y destino
Const celdaOrigen = "A1"
Const celdaDestino = "A1"

'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[/CODE]

2-. como yo quiero cambiar las rutas

[CODE]Sub CopiarCeldas()

'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 & “D:\red\Matriz Lideres.xlsx”) (el creador me indica que cambie la formula a esta para que funcione Set wbDestino = Workbooks.Open(“D:\red\Matriz Lideres.xlsx”)

'Activar este libro
ThisWorkbook.Activate

'Indicar las hojas de origen y destino
Set wsOrigen = Worksheets("Caso Escalar al Lider")
Set wsDestino = wbDestino.Worksheets("Alexis")

'Indicar la celda de origen y destino
Const celdaOrigen = "A1"
Const celdaDestino = "A1"

'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
[/CODE]

3-. como quedaria el VBA

[CODE]Sub CopiarCeldas()

'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 “D:\red\Matriz Lideres.xlsx”)

'Activar este libro
ThisWorkbook.Activate

'Indicar las hojas de origen y destino
Set wsOrigen = Worksheets("Caso Escalar al Lider")
Set wsDestino = wbDestino.Worksheets("Alexis")

'Indicar la celda de origen y destino
Const celdaOrigen = "A1"
Const celdaDestino = "A1"

'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
[/CODE]

y aqui la imagen del error que me da!

Image - TinyPic - Alojamiento de imgenes y de vdeo y uso compartido de fotos, gratis

alguien podria ayudarme¿?

publicado

Sin entrar en detalle y viendo el error es por que las comillas son "" y no ``´´ cambia las comillas que ese es el error que te sale

Cambia esto:

Set wbDestino = Workbooks.Open D:\red\Matriz Lideres.xlsx)

Por:

Set wbDestino = Workbooks.Open "D:\red\Matriz Lideres.xlsx"

publicado

Gracias me sirvio de mucha ayuda! ahora tengo otra pregunta existe alguna manera de que sea inverso? es decir en vez de cada agente pulsar el boton y que la data se valla a la matriz lideres. puede ser que en matriz lideres pulse un boton que extraiga la informacion de cada agente? especificamente de una hoja?

publicado

Hola,

Disculpa que no tenga la respuesta a tu problema ya yo estoy realizando el mismo proyecto. Yo tengo ese mismo programa pero no me funciono muy bien, asi que encontre otro en internet que funciona un poco mejor. Sin embargo tengo problemas para borrar los datos cada vez que copio nuevamente. En otras palabras, cada vez que hago click en un boton para importar los datos y pegarlos, quisiera primero que borre los datos antiguos y coloque los viejos. Sabes como podria hacerlo?

Muchas gracias

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.