Saltar al contenido

BUSCAR UN DATO ESPECIFICO EN UNA HOJA Y ASIGNAR UN VALOR EN OTRA CELDA Y SE ACTUALICE AUTOMÁTICO


Recommended Posts

publicado

Hola buenos días amigos de Ayuda Excel, acudo nuevamente a ustedes para que me ayuden con esta macro. Muchas gracias

La macro debe buscar los datos o valores indicados en la columna C de la hoja COLORES en la columna A de la hoja LISTADO GENERAL y una vez localizado, asignar el valor del precio ubicado en la columna F de la hoja COLORES en la columna I del respectivo dato y muy importante, que se actualice automáticamente cuando el valor del precio de la hoja COLORES varie.

NOTA: En esta hoja COLORES se van añadiendo constantemente nuevos datos.

EN CASO QUE NO ENCUENTRE EL PRODUCTO, DEBE ADVERTIRLO MEDIANTE UN MENSAJE

BUSCAR DATO EN OTRA HOJA.xlsm

publicado

Hola @Haplox como estás. Muchas gracias por tu respuesta. La macro funciona perfectamente, sin embargo, al trasladar la macro al archivo real, no lo hace. Te comento, en la hoja COLORES, en la columna F correspondiente a precios en el real contiene la siguiente fórmula =SI.ERROR(SUMA(INDIRECTO("'"&A5&"'!K4")),"") y creo que es por eso que no actualiza el precio en la segunda hoja. Pero si le escribo manualmente el valor numérico del precio, entonces si actualiza la otra hoja. Me imagino que el problema radica allí. Que opinas?

publicado
Hace 4 horas, Leonardo Briceño dijo:

te envío el archivo con la formula

A ver, ¿Entonces cuásl es elvalor que realmente PONES A MANO y dónde? Porque entonces puede que cambie toda la filosofía de la macro ?

publicado

Hola @Haplox la celdas que la columna F de la hoja COLORES (PRECIO) contiene la formula =SI.ERROR(SUMA(INDIRECTO("'"&A5&"'!K4")),"") 

Esta formula revisa el dato de cada hoja del libro señaladas en la hoja COLORES en la columna A (que corresponden a los nombres de cada hoja del libro). Los nombres de las hojas están indicadas en la columna A de colores. En este ejemplo con colores (AMARILLO, ROJO BLANCO, etc) y cada una de ellas tiene en K4 un valor precio que se va a reflejar en la columna F de COLORES. Estos precios están sujetos a variación en el tiempo. Por eso eso es necesario que la información de los datos que están en LISTADO GENERAL con el SUB agregado (por ejemplo SUB AMARILLO) se actualice automáticamente.  Pues a su vez estos datos van a alimentar otras hojas. Todo lo demás ya está contemplado. solo faltaría este paso para que todo esté conectado

publicado

@Haplox a mano no coloco nada en cuanto a la columna F se refiere.

Por ejemplo una linea A5

DATO 1 AMARILLO lo coloca una macro
DATO 2 SUB es un dato fijo
DATO 3 SUB AMARILLO resultado de concatenar B y A
DATO 4 Es una valor que se coloca manual
DATO 5 Se elige un valor de una lista desplegable
DATO 6 es la formula =SI.ERROR(SUMA(INDIRECTO("'"&A5&"'!K4")),"")
publicado

Hola José  @Haplox, verificando mejoró. Incorporé el resto de las hojas para verificar cálculo pero en el resto no lo hace, solo en la fila correspondiente a AMARILLO. Recuerda que en el tiempo se van a estar agregando nuevas hojas, es decir, en el ejemplo hay 12 hojas involucradas, pero paulatinamente se van a estar agregando nuevas hojas. Por lo que la macro debe prever la incorporación de nuevas hojas

Copia de BUSCAR DATO EN OTRA HOJA (2).xlsm

publicado
En 2/8/2020 at 20:40 , Leonardo Briceño dijo:

Incorporé el resto de las hojas para verificar cálculo pero en el resto no lo hace, solo en la fila correspondiente a AMARILLO

Esto pasa cuando dáis cosas por hecho al explicar el problema o subir los archivos... Que no tienen nada que ver lo que se hace con lo que necesitáis :( . En fin... Te dejo la solución, que espero que ahora sí

Copia de BUSCAR DATO EN OTRA HOJA-1.xlsm

publicado

Hola @Haplox como estás. Muchas gracias por tu respuesta..

He comprobado el funcionamiento de la macro y hace exactamente lo que te pedí. Pero tiene un detalle, recuerda que te comenté que en el tiempo se van agregando nuevas hojas. La macro funciona perfectamente, es decir, actualiza la información en la hoja LISTADO GENERAL pero de la información que hay en hoja COLORES hasta la fila 16. A partir de la fila 17  que serian las nuevas hojas que se van agregando no actualiza la información en LISTADO GENERAL. Me imagino que no lo hace por lo indicado en la primera y ultima linea de parte del código que me enviaste. Que opinas?

If Not Intersect(Target, Range("F5:F16")) Is Nothing Then
    Application.EnableEvents = False
    On Error GoTo salir
    Dim t As Range
    Dim color$
       
       color = Intersect(Target, Range("F5:F160")).Address(0, 0)

publicado
Hace 13 minutos , Leonardo Briceño dijo:

A partir de la fila 17  que serian las nuevas hojas que se van agregando no actualiza la información en LISTADO GENERAL

Juraría que lo dejé para que funcionara al agregar más hojas. Mañana le echo un vistazo

publicado

Hola @Haplox buenos días. Tengo una consulta. Si bien la macro funciona perfectamente. Ahora cada vez que abro un archivo excel, teniendo abierto el archivo donde está la última macro que enviaste, sale en mensaje que dice "Se ha producido el erro '9' en tiempo de ejecución. Subindice fuera del intervalo" Que será???

publicado
Hace 1 hora, Leonardo Briceño dijo:

Ahora cada vez que abro un archivo excel, teniendo abierto el archivo donde está la última macro que enviaste, sale en mensaje que dice "Se ha producido el erro '9' en tiempo de ejecución. Subindice fuera del intervalo"

Pues esto no me lo esperaba... :huh:. Investigando parece una especie de bug de Excel y el evento Calculate. La verdad es que cada vez que he lidiado con este evento me ha dado más quebraderos de cabeza que otra cosa.

Te dejo otra solución. Prueba y me dices

BUSCAR DATO EN OTRA HOJA-1.xlsm

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.