Excel macro copiar datos de un libro a otro

A tod@s l@s expert@s y gracias por anticipado por vuestra ayuda. Tengo unos datos en un libro de excel y necesito pasarlos a otro. He escrito esta macro (que ejecuto mediante un botón en el libro de origen) que copia los datos, abre el libro de destino, selecciona la celda de destino y copia los valores de los datos a dicha celda. Después se ejecuta otra macro en el libro de destino. Pero al ejecutarla se me para en la línea subrayada y no encuentro dónde está el error. Es decir, selecciona los datos, los copia, abre el libro dee destino, selecciona la celda de destino pero no copia los datos.

No soy capaz de ver el error, así que os agardeceré cualquier ayuda al respecto

Copio los datos

Range("E2:G2").Select
Selection. Copy

Abro el libro de destino

Workbooks.Open Filename:="C:\Users\Usuario4\Desktop\proyecto pedidos39\Serie 39 2013.xls", UpdateLinks:=False, Password:="b392013", WriteResPassword:="b392013"

Selecciono la hoja de destino

Windows("Serie 39 2013.xls").Activate

Sheets("DIARIO").Select
ActiveSheet. Unprotect

Selecciono la celda de destino

Range("A15").Select

copio valores, pero aquí es donde se para...

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

ejecuto la otra macro
Application.Run "VENTAAUTOMATICA"

protejo la hoja

Sheets("DIARIO").Select

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True

Cierro el libro de destino

ActiveWorkbook. Save
ActiveWorkbook. Close

1 respuesta

Respuesta
1

Veo en tu rutina que desprotejes la hoja, pero no veo ninguna clave, ¿no hay clave en la protección de la hoja?

Lo otro sería dentro de las celdas seleccionadas, ¿o de las celdas de destino hay algunas celdas combinadas?

Buenas tardes experto. Muchas gracias por el interés.

De momento las hojas están protegidas sin contraseña hasta que acabe el proyecto. Cuando lo acabe les incluiré una contraseña y ajustaré las macros.

Respecto a tu otra puntualización, no hay ninguna celda combinada ni en el origen de datos ni en la cena de destino.

Se te ocurre alguna otra cosa en la que me pueda estar equivocando?

Ok, ya lo tengo, lo que sucede es que cuando le das desproteger a la hoja pierdes el dato copiado, por tanto debes cambiar el orden de tu rutina, primero debes abrir el archivo de destino, desproteger la hoja, luego vas a tu archivo de origen copias los dato, regresas a la hoja destino y pegas la información desde la celda seleccionada.

Esto sucede porque usas comando de copia, si es que fuera posible utilizar variables para llevar los datos no necesitarías cambiar el orden

Disculpa mi ignorancia, pero ¿cómo utilizo variables?

Te explico un poco la estructura de libros que estoy utilizando. La hoja de origen me llega por email y su nombre se genera automáticamente en función del nombre del cliente y de la fecha en la que lo genera. La macro está en este archivo.

Necesito copiar el rango de celdas E2:G2 y copiarlo al rango A15:C15 del libro de destino, cuyo nombre no cambia,

Sería fantástico si me puedes explicar como utilizo variables para esto, ya que nunca lo he hecho.

Muchas gracias por anticipado por tu ayuda y generosidad. Un Saludo.

El tema de variables es dar un valor a una letra a un conjunto de letras, por ejemplo tienes las celda E2, F2 y G2, y pensemos que tienes el nombre del cliente, su dirección y su teléfono respectivamente, en ese caso en lugar de copiar y pegar podrías valorar unas variables con la información de esos campos.

cliente = Range("E2").value

direccion = Range("F2").value

telf = Range("G2").value

y al momento de pegar sería

Range("A15").value = cliente

Range("B15").value = direccion

Range("C15").value = telf

De esa manera al desproteger la hoja se pierde el copiar pero el valor que le has dado a las variables no se pierde. Considerando que solo son tres celdas, creo yo que lo mejor es hacerlo así.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas