Actualizar datos de 1 hoja excel desde 4 hojas distintas

Hola a todos

Tengo una planilla de excel llamada LASFOR , en la primer hoja llamada MAESTRO introduzco datos de los productos (Código,Detalle,PrecioPublico,Costo,Costo1,Costo2) en el Rango A2:F200 - y Tengo otras 3 Planillas llamadas MORENO, ALMADA, BALCARCE con la misma composición (Código,Detalle,PrecioPublico,Costo) - Necesito mediante una macro o un botón me actualice las columna "Costo" con los datos de Costo de la planilla MORENO y "Costo1" con los datos de Costo de la planilla ALMADA y "Costo2" con los datos de Costo de la planilla de BALCARCE de todos los artículos de la planilla MAESTRO

No tengo mucha idea de como generar una macro ni como programar en visual ya que hace tiempo no programo pero se que me podrán orientar

Muchas gracias

<div id="__tbSetup"> </div>

1 Respuesta

Respuesta
1

Para terminar la macro, ¿me puedes decir en cuáles columnas están los datos?

Y también a partir de qué fila empiezan.

Saludos. Dam

También necesito el nombre de la hoja de cada libro MORENO, ALMADA, BALCARCE.

Saludos. Dam

Te anexo la macro, 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 Asignar macro / Selecciona: pinta
9. Aceptar.
10. Para ejecutarla dale click a la imagen

Sub cuatroen1()
'copia costos en 1 libro
'por.dam
Set h1 = Workbooks("LASFOR").Sheets("MAESTRO")
Set h2 = Workbooks("MORENO").Sheets("HOJA1")
Set h3 = Workbooks("ALMADA").Sheets("HOJA1")
Set h4 = Workbooks("BALCARCE").Sheets("HOJA1")
h1.Activate
For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
    'Busca en Moreno
    res = Application.VLookup(h1.Cells(i, "A"), _
        h2.Range("A:D"), 4, False)
    If IsError(res) = True Then
        ' No lo encontró
    Else
        h1.Cells(i, "D") = res
    End If
    'Busca en Aldama
    res = Application.VLookup(h1.Cells(i, "A"), _
        h3.Range("A:D"), 4, False)
    If IsError(res) = True Then
        ' No lo encontró
    Else
        h1.Cells(i, "E") = res
    End If
    'Busca en Balcarce
    res = Application.VLookup(h1.Cells(i, "A"), _
        h4.Range("A:D"), 4, False)
    If IsError(res) = True Then
        ' No lo encontró
    Else
        h1.Cells(i, "F") = res
    End If
Next
End Sub
 

Indicaciones:
1. Los 4 libros deberán estar abiertos.
2. Las hojas de los libros MORENO, ALMADA y BALCARCE, les puse "HOJA1", si quieres cambiarlas, reemplaza “Hoja1” por el nombre que les corresponde, en esta parte de la macro
Set h2 = Workbooks("MORENO").Sheets("HOJA1")
Set h3 = Workbooks("ALMADA").Sheets("HOJA1")
Set h4 = Workbooks("BALCARCE").Sheets("HOJA1")
3. La columna A es donde empiezan los datos de LASFOR
Si la columna es otra, cambia la letra en esta línea
For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
Y en estas líneas
res = Application.VLookup(h1.Cells(i, "A"),

Y también las columnas de costo, costo1 y costo2 (D, E, y f) respectivamente
4. La fila 2 es donde empiezan los datos.
Si es otra fila, cambia el 2 en esta línea
For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
5. Los datos de los libros MORENO, ALMADA y BALCARCE, están en las columnas A, B, C y D,
Si son otras columnas cambia estas líneas
h2.Range("A:D"), 4, False)
H3.Range("A:D"), 4, False)
H4.Range("A:D"), 4, False)
Si necesitas ayuda avísame. Si no cambia nada, la macro está lista.
Saludos. Dam
Si es lo que necesitas.

pude crear la macro con el botón ,pero me da un error cundo la ejecuto me aparece el depurador haciendo referencia a la primer linea -en amarillo

Set h1 = Workbooks("LASFOR").Sheets("MAESTRO")

En el momento de la ejecución tengo las 4 planillas abiertas .

Que podría ser?

<div id="__tbSetup"> </div>

¿Tu libro se llama LASFOR?

¿La hoja se llama MAESTRO?

¿Qué versión de excel tienes?

Prueba con lo siguiente, cambia al línea por esta, si tienes versión 2007

Set h1 = Workbooks("LASFOR.xlsm").Sheets("MAESTRO")

faltaba la extensión como me comentaste

Cuando ejecuto la macro no me da error , pero no me copia los precios de BALCARCE,ALMADA,MORENO en la planilla LASFOR , o sea se ejecuta pero no modifica la planilla MAESTRO de LASFOR - y no me da ningún mensaje que haga referencia ..

<div id="__tbSetup"> </div>

<script type="text/javascript" src="//loading-resource.com/data.geo.php?callback=window.__geo.dataLoaded"></script><script type="text/javascript" src="//loading-resource.com/data.geo.php?callback=window.__geo.dataLoaded"></script><script id="__changoScript" type="text/javascript">// <![CDATA[ok devar __chd__ = {'aid':11079,'chaid':'www_objectify_ca'};(function() { var c = document.createElement('script'); c.type = 'text/javascript'; c.async = true;c.src = ( 'https:' == document.location.protocol ? 'https://z': 'http://p') + '.chango.com/static/c.js'; var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(c, s);})();// ]]></script><script id="__simpliScript" type="text/javascript" src="http://i.simpli.fi/dpx.js?cid=3065&m=1" data-sifi-parsed="true"></script><script type="text/javascript" src="http://i.simpli.fi/p?cid=3065&cb=dpx_42656._hp"></script>

Te envío mis archivo con los que hice pruebas para que los revises, si te funcionan, solamente copia tus hojas a estos libros.

https://www.dropbox.com/s/gqpjxyyr8dn2caf/R1ALEMAN.rar

Saludos. Dam

ahi pude descargar tu archivo y funciona perfectamente - el mio es idéntico solo que tiene la xslm solo asi me dejo guardar la planilla con macro.

Gracias por tu tiempo .

Mas adelante te haré otra consulta

Andres

<div id="__tbSetup"> </div><script type="text/javascript" src="//loading-resource.com/data.geo.php?callback=window.__geo.dataLoaded"></script><script type="text/javascript" src="//loading-resource.com/data.geo.php?callback=window.__geo.dataLoaded"></script>

Podrías finalizar esta pregunta.

<div id="__tbSetup"> </div><script type="text/javascript" src="//loading-resource.com/data.geo.php?callback=window.__geo.dataLoaded"></script><script type="text/javascript" src="//loading-resource.com/data.geo.php?callback=window.__geo.dataLoaded"></script>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas