Macro para copiar valores de determinadas celdas a otra hoja

Agradeciendo de antemano su valiosa ayuda y deseando los mejores éxitos en sus vidas, mi solicitud es la siguiente:

Necesito una macro que me copie solo los valores de las celdas C6, C5, D5, F5, G5, E8, C9, E9, E10 (deben ir en éste mismo orden) de la hoja llamada PC 744 a otra hoja llamada DETALLES PRESUPUESTO en las celdas A4, B4, C4, D4, E4, F4, G4, H4, I4. Hay que tener en cuenta que los valores de la hoja PC 744 cambian, por lo tanto los nuevos valores deberían copiarse en la hoja DETALLES PRESUPUESTOS en las celdas A5, B5, C5, ... Y así sucesivamente cada vez que haya nuevos datos.

Espero haberme hecho entender y de nuevo muchas gracias por su ayuda.

Un abrazo.

1 respuesta

Respuesta
3

Te anexo una macro para que la ejecutes después de realizar tu captura

Sub CopiarValores()
'Por.Dante Amor
    Set h1 = Sheets("PC 744")
    Set h2 = Sheets("DETALLES PRESUPUESTO")
    ori = Array("C6", "C5", "D5", "F5", "G5", "E8", "C9", "E9", "E10")
    '
    f = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
    If f < 4 Then f = 4
    c = 1
    For i = LBound(ori) To UBound(ori)
        h1.Range(ori(i)).Copy h2.Cells(f, c)
        c = c + 1
    Next
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: CopiarValores
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Saludos. Dante Amor

Hola Dante

he probado la macro en un libro con lo justo (PC 744 y DETALLES PRESUPUESTO y va perfecto

pero al ejecutarla en mi libro salta Error 9 en tiempo de ejecución- subíndice fuera del intervalo  y en amarillo resalta Set h2 = Sheets("DETALLE PRESUPUESTO") y no se el motivo.

te describo mi libro y lo que he hecho:

nombre libro: COTIZACIONES

nombre de hojas: PC 8025, PC 744, VC 5020, PC 7038, VP 3831, DIV BAÑO, DETALLE PRESUPUESTO

abrí COTIZACIONES y seguí tus indicaciones, la imagen la puse en PC 744 y le asigne la macro COPIAR VALORES y al ejecutarla me sale el error. que podría ser?

Revisa que en tu libro "cotizaciones" tengas una hoja con este nombre:

"detalles presupuesto"

Veo que en la macro dice "detalleS" con "S" al final y tu pusiste "detalle" sin la "S", el nombre de la hoja debe ser exactamente igual a esto:

"detalles presupuesto"

También revisar que no tenga espacios

Hola Dante

Ya solucione lo del error que me aparecía con tu aclaración, pero ahora al ejecutar la macro me copia las fórmulas que tengo en las celdas E8, E9, E10  ( por lo tanto el resultado es 0 en la hoja DETALLES PRESUPUESTO ) y necesito copiar solo los valores.

Te anexo la macro actualizada

Sub CopiarValores()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("PC 744")
    Set h2 = Sheets("DETALLES PRESUPUESTO")
    ori = Array("C6", "C5", "D5", "F5", "G5", "E8", "C9", "E9", "E10")
    '
    f = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
    If f < 4 Then f = 4
    c = 1
    For i = LBound(ori) To UBound(ori)
        h1.Range(ori(i)).Copy
        h2.Cells(f, c).PasteSpecial Paste:=xlPasteValues
        c = c + 1
    Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas