¿Cómo copiar los valores de un libro a otro sin romper los vínculos a los que hacen referencia?

Solicito de su amplia experiencia para resolver lo siguiente:

Necesito actualizar un libro que contiene dos hojas con cientos de registros "Detalle de Ventas 1" y "Detalle de Ventas 2", la diferencia radica en que la segunda hoja contiene los números de factura y este dato está vinculado (color azul) con la factura (.pdf)

Lo que se pretende es actualizar la hoja "Detalle de Ventas 1" con los números de factura pero sin que se rompan los vínculos, ya que dicho valor a copiar se va agregar en una columna diferente al del origen.

Lo intente con la función BUSCARV para traer los valores ya que los productos no están en el mismo orden, sin embargo, el vínculo se rompe.

Requiero toda la ayuda posible para resolver este lío lo más pronto posible de una forma ágil y eficiente.

2 respuestas

Respuesta
3

La siguiente macro copia el valor si perder el vínculo.

Ejecuta la siguiente macro:

Sub copiaceldas()
  Dim sh1 As Worksheet, sh2 As Worksheet
  Dim dic As Object
  Dim i As Long, j As Long
  Dim cad As String
  Dim a As Variant, b As Variant
  '
  Application.DisplayAlerts = False
  '
  Set sh1 = Sheets("RESUMEN")
  Set sh2 = Sheets("PARA FILTRO")
  Set dic = CreateObject("Scripting.Dictionary")
  '
  If sh1.AutoFilterMode Then sh1.AutoFilterMode = False
  If sh2.AutoFilterMode Then sh2.AutoFilterMode = False
  '
  a = sh2.Range("A1", sh2.Range("Y" & Rows.Count).End(3)).Value
  For i = 10 To UBound(a, 1)
    cad = a(i, 11) & "|" & a(i, 13) & "|" & a(i, 15) & "|" & a(i, 16) & "|" & a(i, 22)
    dic(cad) = i
  Next
  '
  b = sh1.Range("A1", sh1.Range("AA" & Rows.Count).End(3)).Value
  For i = 2 To UBound(b, 1)
    If b(i, 11) <> "" Then
      cad = b(i, 11) & "|" & b(i, 22) & "|" & b(i, 25) & "|" & b(i, 26) & "|" & b(i, 27)
      If dic.exists(cad) Then
        j = dic(cad)
        sh2.Range("O" & j).Copy sh1.Range("AU" & i)
      End If
    End If
  Next
End Sub

En esta línea, puedes cambiar la columna origen y la columna destino:

Sh2.Range("O" & j). Copy sh1. Range("AU
Respuesta
2

I. Hola Maricela, disculpe la intromisión, aunque debe responderle un experto, deseaba trasladarle una información creo que cercana sobre su consulta que pienso podría serle de utilidad mientras una persona conocedora le atiende, además he leido que una posible solución consiste en ir a la pestaña de datos; estando en el libro B, seleccionar 'Editar vínculos' y luego usar el botón de cambiar origen, y seleccione el mismo libro.

Le ruego perdone las molestias de lectura, mucha suerte.

https://es.extendoffice.com/documents/excel/2882-excel-copy-formula-from-one-workbook-to-another-without-link.html 

https://es.justexw.com/copia-las-formulas-de-excel-sin-cambiar-las-referencias.html

https://www.youtube.com/watch?v=Im2PGmunBm4&feature=emb_logo 

https://www.javierrguez.com/excel-copiar-formulas-sin-enlaces-a-fichero/ 

Copiar una hoja de un libro a otro sin los links

https://www.youtube.com/watch?v=m3hfbr_9rNY 

https://www.youtube.com/watch?v=KOT_YFHTZ14 

https://support.microsoft.com/es-es/office/romper-un-v%C3%ADnculo-a-una-referencia-externa-en-excel-f1ca8b08-4f24-4af6-92e5-f4fdb1442748 

https://foro.todoexcel.com/threads/copiar-hojas-de-un-libro-a-otro-con-referencias-al-nuevo-lib.24001/ 

https://support.microsoft.com/es-es/office/mover-o-copiar-hojas-de-c%C3%A1lculo-o-los-datos-que-contienen-47207967-bbb2-4e95-9b5c-3c174aa69328 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas