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.

  • 109 ¿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
      187
    • Comentarios
      97
    • Revisiones
      28

    Más información sobre "Un juego del Rabino en Excel"
    Última descarga
    Por pegones1

    1    1

  • Crear macros Excel

  • Mensajes

    • Hola nuevamente. Por eso la importancia de lo que mencionas tú como "ruta relativa". Tal cual comentas, y aún sin llegar a algunos detalles importantes para ayudarte, en realidad tal cual te comenté le día miércoles, pues sí podías hacer como comentabas, era cosa de obtener los Id de Windows (como tú los llamas) y la ruta de OneDrive en casa usuario y eso sí se puede obtener con VBA y luego pasarlo a PQ, pero medio que te cerraste en que "PQ no puede trabajar con rutas relativas", cosa cierta pero siempre hay formas. Si SAP puede o no guardar en OneDrive o SharePoint, pues si está mapeado en la PC ¡claro que se puede! Pero bueno, creo que si te es útil tu propia propuesta ¡avanza con eso!
    • Perdona @Abraham Valencia pero he estado liado estos días. En realidad todo el problema se reduce a estos dos problemas: Problema 1: El script que "fabrica" SAP y que luego "pego" en la macro, no es capaz de  guardar archivos en SharePoint. He estado buscando, y en realidad muchas personas tienen ese problema (no poder guardar un Excel en SAP a través de VBA). Eso muy probablemente sean problemas de permisos, que no puedo cambiar (no soy administrador de nada). Como no puedo solucionarlo así, paso al plan B, que es guardar en Excel que me genera SAP en el ordenador de cada usuario que ejecute la plantilla (y que sí está guardada en SharePoint), para después con PowerQuery llamar a ese Excel (el export). Para ello, pretendo guardar el export, en la ruta relativa "C:\..\..\..\OneDrive - NombreEmpresa\Documentos\SAP\SAP GUI" donde los \..\..\..\ saltan las rutas personales de cada usuario (tipo C:\users\IDusuario\). Eso lo hace bien, y el archivo se guarda en la ruta de cada usuario que lo usa, pero surge el problema 2 Problema 2: PowerQuery no trabaja con rutas relativas del tipo  "C:\..\..\..\OneDrive - NombreEmpresa\Documentos\SAP\SAP GUI" necesita que sea del tipo fija "C:\users\IDusuario\OneDrive - NombreEmpresa\Documentos\SAP\SAP GUI" pero claro, IDusuario es diferente para cada usuario.   Pero escribiendo todo esto, creo que he dado con una posible solución, no grabar el export en una ruta de usuario, sino en una en la raiz de C:, que siempre será igual para todos los usuarios, del tipo C:\Sap\export.xlsx que seria igual en todos los ordenadores. Asi sí podría decirle a PowerQuery que vaya siempre a la ruta C:\Sap\ que existirá en todos los ordenadores. Mañana intentaré hacer pruebas, aunque mi solución ideal seria que se pudiera guardar en el SharePoint. Saludos.
    • Hola La opción brindada por @torquemada es correcta, funciona, pero hay algunos inconvenientes que (desde mi punto de vista) no la convierten en mi primera elección. Los inconvenientes son: Tendrías que ir columna por columna haciendo los reemplazos, claro que no se harían a mano sino que utilizarías la opción reemplazar o la opción texto en columnas, aun asi demorará un poquito y será trabajoso. Cada vez que descargues otro listado, tendrás que volver a realizar los reemplazos. Me parece una mejor propuesta lo siguiente: Descarga los movimientos a un archivo de Excel Desde tu control de pagos (otro archivo) cargas los movimientos del archivo descargado mediante Power Query Power Query hará los reemplazos y reconocerá todo correctamente (sin que tengas que hacer nada especial) Cuando descargues los movimientos un día posterior, solamente tendrás que hacer clic en "Actualizar" y todo funcionará en automático
    • Hola a todos, Efectivamente, me temo que tal como trabajan las funciones =HOY() y/o =AHORA() (volátiles), sólo con macros puedes obtener soluciones. Un recurso pedestre podría ser, cada vez que quieras que se fije un dato, te sitúes en esa celda y pulses F2, F9 e INTRO.  Pero claro, puede ser un inconveniente si hay que hacerlo repetitivamente en muchas ocasiones,.............. en fin, lo comento sólo como posibilidad. Saludos,
    • Hola nuevamente, mi duda sigue siendo la ruta, o rutas, finales que quedan, esas que llamas "relativas"; igual por si acaso pon 3 o 4 de esas, tal cual son y/o se ven en el explorador de cada PC y, de ser posible, en cualquier otro "lado" en que las veas.
  • 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.