Modificación de macros

Buenos días, Espero que me podáis ayudar!
He buscado por internet, y he encontrado la pregunta y la respuesta pero tengo un pequeño problema. Os adjunto la pregunta y la respuesta que he encontrado:
PREGUNTA: "Tengo una hoja de calculo y necesito
que al buscar un valor me localice en la columna el ultimo valor buscado ingresado
(Ya que ese valor lo he ingresado varias veces y con buscarv normalmente el me
localiza el primer registro ingresado, pero no el ultimo y necesito es que me
encuentre el ultimo valor buscado que he ingresado en la base de datos)
RESPUESTA: No encuentro una función para resolver tu consulta, pero lo puedes solucionar con un macro.
En el menu herramientas selecciona macro/macros y escribe el nombre de la macro como "UValor" y selecciona el botón Crear, se abrirá un modulo de visual basic. Borra el texto y pega el siguiente:
Sub UValor()
Udato = ActiveCell.Value
UCelda = ActiveCell.Address
Range("A2").Select ''Anota la celda inicial de la busqueda
Selection.End(xlDown).Select
Do Until ActiveCell.Row = 2 ''Anota la fila inicial de la busqueda
If ActiveCell.Value = Udato Then
ActiveCell. Offset(0, 1). Select ''Cambia la referencia (renglon, columna) para indicar la columna que tiene el valor deseado
UCaptura = ActiveCell.Value
Exit Do
End If
ActiveCell.Offset(-1, 0).Select
Loop
Range(UCelda).Select
ActiveCell.Offset(0, 1).Formula = UCaptura ''Cambia la referencia (renglon, columna) para indicar la columna en la que deseas el valor deseado
ActiveCell.Offset(1, 0).Select
Beep
End Sub
Regresa a la hoja de cálculo y selecciona herramientas/marcros/UValor/ejecutar y listo
Si exploras un poco más notarás que puedes asignar el macro a una combinación de teclas o a un botón en la barra de herramientas..
Solo ejecuta el macro en la celda que tiene el valor que deseas buscar.
Todo perfecto, pero mi problema es que yo la lista la voy actualizando, y claro escribo un valor continuado de la lista, utilizo el macro, y claro, me coge el ultimo valor, si pero el que acabo de escribir! No se me entendéis...
María 5
Sara 3
laura 5
MAR 8
SARA     5
Sara ( y al utilizar el macro en Sara tendría que ponerme 5, pero no lo pone, porque según el macro el ultimo valor puesto es el que acabo de escribir, y el resultado es vacío)
¿Qué debería de modificar en el macro? Estaría muy agradecido... Ya que necesito esto para trabajar! Muchas gracias!

1 respuesta

Respuesta
1
Creo que lo único que falta es incluir el trocito que te marco más abajo en negrita.
Saludos
Angel
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Sub UValor()
    Udato = ActiveCell.Value
    Ucelda = ActiveCell.Address
    Range("A2").Select ''Anota la celda inicial de la busqueda
    Selection.End(xlDown).Select
    Do Until ActiveCell.Row = 2 ''Anota la fila inicial de la busqueda
       If ActiveCell.Value = Udato And ActiveCell.Address <> Ucelda Then
          ActiveCell. Offset(0, 1). Select ''Cambia la referencia (remaringlon, columna) para indicar la columna que tiene el valor deseado
          UCaptura = ActiveCell.Value
          Exit Do
       End If
    ActiveCell.Offset(-1, 0).Select
    Loop
    Range(Ucelda).Select
    ActiveCell.Offset(0, 1).Formula = UCaptura ''Cambia la referencia (renglon, columna) para indicar la columna en la que deseas el valor deseado
    ActiveCell.Offset(1, 0).Select
    Beep
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas