Saltar al contenido

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


Recommended Posts

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

Enlace a comentario
Compartir con otras webs

@Leonardo Briceño , te dejo una solución. El código está en el evento de la hoja colores, así que solo tienes que cambiar el dato del precio y se ejecuta automáticamente.

Para la próxima no subas tu archivo con columnas (o cualquier otra cosa) ocultas, es un jaleo.

Copia de BUSCAR DATO EN OTRA HOJA.xlsm

Enlace a comentario
Compartir con otras webs

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?

Enlace a comentario
Compartir con otras webs

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 ?

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

@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")),"")
Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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)

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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á???

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 96 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Buenas noches quisiera hacer esta formula auto incremental    =SI(INDIRECTO("'Casos de Prueba'!I1")="Resultados Ciclo 1"; SI(CONTAR.SI(INDIRECTO("'Casos de Prueba'!I:I"); "OK")=0; 0; CONTAR.SI(INDIRECTO("'Casos de Prueba'!I:I"); "OK")); 0)      para que cada vez que copiase y pegase la celda con la formula  se incrementara la letra en este caso la I pasara a J ,como el numero perteneciente a Resultados Ciclo pasando en este caso del 1 al 2.   Tengo también esta formula =CONCATENAR("CP";TEXTO(MAX((SI((ESNUMERO(HALLAR("CP";A$1:A1)))*(A$1:A1<>"");VALOR(EXTRAE(A$1:A1;3;3));0))+1);"000")&" - "&B2) quisiera que no tuviera los 3 ceros si no que fuera por ejemplo CP1 y se fuera incrementando. Gracias un saludo.
    • Con el diseño así como lo tiene en su libro, una fórmula de BUSCARV con COINCIDIR debería ser de utilidad =C5*BUSCARV($C$1,Tabla1[#Todo],COINCIDIR($D5,Tabla1[#Encabezados],0)) Es con lo que participaría en su consulta. Lo que resta es definir que hacer si no encuentra la OT porque así como esta le devolvería error en ese caso, o si tiene condiciones que haya podido omitir también le afectarían el resultado.
    • He cambiado mi macro a este: Sub repetir() Set a = Sheets(ActiveSheet.Name) uf = a.Range("C" & Rows.Count).End(xlUp).Row 'ultima fila con datos ActiveCell.Select ActiveCell.Offset(1, 0).Select   'Application.OnTime Now + TimeValue("00:00:10"), "repetir", , True End If End Sub   Lo que no se es como detenerlo al llegar a la ultima fila con datos de la columna C. Muchas gracias
    • Buenas tardes a todos. Tengo un problema que preciso de vuestra ayuda.  Tengo que controlar los gastos de la oficina que trabajo y he de repartir unos gastos a % según una OT y unos tipos de gastos. Envío un archivo adjunto. Lo que necesito es que lo que aparece en la columna en amarillo lo haga automáticamente, teniendo en cuenta los datos de la tabla a la derecha. Por ejemplo, el primer gasto tiene una cuota de 1477 euros y teniendo en cuenta que es un gasto de tipo Común y que la OT es la 12810234, le corresponde un gasto de 605,57 euros ya que según la tabla de la derecha su % a imputar es de un 41%. ¿alguien me puede ayudar con la formula? He de añadir muchas más líneas y más hojas con el resto de OT y en el futuro cambiar más datos, así que necesito automatizarlo con una formula Excel. Gracias. Control de gastos.xlsx
    • Hola buenas tardes: Por favor me pueden ayudar a realizar lo siguiente. ejecutar una macro después de un tiempo, que recorra una columna a partir de la celda activa hacia abajo. Es una lista extensa, que filtro desde la columna B. y solo me muestra las filas que me interesan. ejemplo: Si mi celda activa es la C23 ejecutar la macro y baje una celda y repite la macro después de 20 segundos y lo vuelve hacer(Simpre bajando una celda), y que este se detenga hasta la ultima fila que este visible en el filtro. Ya que puedo tener muchos datos mas.   Gracias   Prueba filtro y avance.xlsm
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.