Jump to content

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


Go to solution Solved by Haplox,

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

Link to post
Share on other sites

@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

Link to post
Share on other sites

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?

Link to post
Share on other sites

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

Link to post
Share on other sites

@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")),"")
Link to post
Share on other sites

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

Link to post
Share on other sites
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

Link to post
Share on other sites

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)

Link to post
Share on other sites
Posted (edited)

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

Edited by Leonardo Briceño
Link to post
Share on other sites
  • Solution
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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Saludos Estimados, tengo una función que al imprimir me guarda información y datos de algunas celdas de un formulario abierto, en un archivo (dato2.txt), este archivo contiene mucha información que se ha almacenado desde hace mucho tiempo, este archivo de texto es abierto de vez en cuando para verificar la información allí guardada, pero en algunas ocasiones se ha visto modificado por las personas que lo abren, por lo que se me ocurre generar uno nuevo con la misma información, es decir tener dos archivos idénticos pero que la información se cargue idéntica, no hago copia y paste del archivo ya creado porque aunque la información guardada esta guardada, necesito el otro de respaldo, o si me dan otra idea de como crear este doble respaldo estaré gustoso de aceptar sus opiniones. adjunto las instrucciones que me generan el respaldo permanente Private Sub Workbook_BeforePrint(Cancel As Boolean)Dim Archivotxt As StringSet fs = CreateObject("Scripting.FileSystemObject")Archivotxt = "C:\Varios Excel\dato2.txt" '<---Ruta y nombre del Txt  creadoIf Len(Dir(Archivotxt)) = 0 ThenSet a = fs.CreateTextFile(Archivotxt, True)a.CloseEnd IfSet a = fs.OpenTextFile(Archivotxt, 😎texto = Range("T17").Value & " ; " & ActiveWorkbook.Name & " ; " & ActiveSheet.Name & " ; " & Range("f15").Value & " ; " & Format(Range("F17").Value, "dd/mm/yyyy") & " ; " & Format(Range("j17").Value, "h:mm:ss AM/PM")a.WriteLine (texto) '<-----celda que se escribe en el Txt, se escribe en un renglon del txta.CloseSet fs = NothingSet Archivo = Nothing    gracias de antemano  
    • Expertos saludos a todo de esta comunidad informática, mi duda es que no logro ubicar si fuera un error o desbordamientos de código, lo que pasa es que me funciona muy bien la macro realizar los reportes por cada alumno, el detalle es que cuando en algunos reportes los criterio evaluación no coinciden cada criterio no lo esta tomando bien  para sacar el total, tengo mas de 30 alumnos por cada archivo, me tomado el afán de revisar cada reporte en algunos reportes del alumno lo cuadra muy bien la sumatoria pero en algunos reportes no los toma bien el total sale mas a en otros casos menos  no lo generando la sumatoria de acuerdo a los criterios eso es el único detalle que me sale en mi registro de correspondencia....Adjunto el archivo por favor. muchas gracias a la comunidad.      Rubricas 1 A 1 Primaria V2.xlsm
    • Checa el archivo   Saludos, Copia de PonerContraseñaBoton.xlsm
    • ¡Hola a todos! @Cristian 1985:  Debes tener en cuenta que en la función INDICE, el argumento 0 hace que la función devuelva TODOS los valores de la columna a analizar (puedes probar con una función en modo edición, y presionar F9 para que lo constates). @victorjavega:  Cristian si escribió bien mi nombre (eso hizo que me fijara en el tema).  Tu llamaste a un "tocayo"... 😂 Para la propuesta, no necesitas ningún tipo de macros.  Simplemente un control de formulario (control número), vinculado con la celda donde está el mes. Mejoré la fórmula que tenías en la selección del mes, además de la fórmula original, donde combino INDICE - COINCIDIR - INDICE.  Revisa el adjunto.  ¡Bendiciones! Calendario_aulas.xlsx
    • Gracias por millones Toni, muy amable.
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy