Buscarv con macros

Buenas noches.
Tengo una siguiente consulta .
En un libro1 de excel consulto desde la hoja3 a dos libros distintos al mismo tiempo
con la función buscarv en una macro.
Pero quiero que esa función no me busque un valor fijo en una celda, sino más bien que busque el ultimo valor de la columna DE de el libro1 de la hoja1.
La función la incorpore a una macro, pero no logro ningún resultado.
Coloque los valores de buscarv en la hoja 3 del libro 1 e hice que los valores de las celdas que contenían ese valor, aparecieran en una etiqueta que le asigne.
No logro establecer el ultimo valor de la columna D
el código que genere es algo así.
' me posiciona sobre la columna en donde esta el valor a buscar
Hoja1.Range("d5").End(xlDown).Select
'hace que la variable llss sea igual a la seleccion
  set llss = ActiveCell.Value2
  'ahora incorpora en la formula buscarv el valor de mi variable llss
' es qui en donde no me aparece ningun dato, si cambio la variable llss por un valor fijo ahi realiza la consulta y arroja datos
    Hoja3.Range("A8").Select
    ActiveCell.FormulaR1C1 = _
        "=""BUSID ="" & VLOOKUP(""& llss,'[AT.xls]Version 228(09-07-09)'!R2C1:R6913C5,3,FALSE)"
     Hoja3.Range("A9").Select
    ActiveCell.FormulaR1C1 = _
        "=""OP /  ="" & VLOOKUP(""& llss,'[AT.xls]Version 228(09-07-09)'!R2C1:R6913C2,2,FALSE) & "" CT / = ( "" & VLOOKUP(llss,'[AT.xls]Version 228(09-07-09)'!R2C1:R6913C10,10,FALSE) & "" ) """
       Hoja3.Range("A10").Select
    ActiveCell.FormulaR1C1 = _
        "=""FLOTA  = "" & VLOOKUP(""& llss,'[AT.xls]Version 228(09-07-09)'!R2C1:R6913C6,6,FALSE)"
     Hoja3.Range("A11").Select
    ActiveCell.FormulaR1C1 = _
        "=""BUSID = "" & VLOOKUP(""& llss,'[als.xls]356'!R2C1:R4854C4,4,FALSE)"
     Hoja3.Range("A12").Select
    ActiveCell.FormulaR1C1 = _
        "=""OPID = "" & VLOOKUP(""& llss,'[als.xls]356'!R2C1:R4854C3,3,FALSE) & "" CT /  = ( "" & VLOOKUP(llss,'[als.xls]356'!R2C1:R4854C5,5,FALSE)"
    Hoja3.Range("A13").Select
   ActiveCell.FormulaR1C1 = _
        "=""ACC = ( "" & VLOOKUP(""& llss,'[als.xls]356'!R2C1:R4854C9,9,FALSE)"
    Hoja3.Range("A14").Select
    ActiveCell.FormulaR1C1 = _
        "=""FLTA = "" & VLOOKUP(""& llss,'[als.xls]356'!R2C1:R4854C11,10,FALSE) & "" CP = ( "" & VLOOKUP(llss,'[als.xls]356'!R2C1:R4854C11,11,FALSE)"
Favor necesito su ayuda, la verdad aun no se como hacer que buscarv me busque una variable.

1 respuesta

Respuesta
1
Pues buscarv no solo buscar valores, dentro de las características de este comando esta el de buscar contenido+formato, es decir si pones una variable debes definir el formato de esta variable (decimal, texto, entreo, numero etc), ese formato debe ser igual formato de la celda donde se ubica el valor buscado
puedes confirmarlo con un ejercicio simple
dale un formato texto a una celda a1 un valor 10
en otra celda pon buscarv(10; a1:a1;1;0) excel intenta buscar el valor 10 en la celda a1 pero la celda a1 tiene texto 10, no numero 10
buscarv("10"; a1:a1;1;0) excel intenta buscar el texto 10 en la celda a1 y lo encuentra
Si en otra celda con formato numero haces lo mismo veras que los resultados son inversos.
Muchas gracias experto
Me sirvió mucho tu respuesta, el código que realize esta vez fue distinto
lo que hice fue colocar el ultimo valor de mi columna en una celda
y desde ai realizar la búsqueda de el valor de esa celda, que sera siempre el ultimo valor ejemplo de la columna D.
' el la variable que contendra el ultimo valor  
as = Hoja1.Range("g30").Value
'busco en la columna d5 el ultimo valor
 Hoja1.Range("d5").End(xlDown).Select
lo copio y lo pego en el mismo lugar
Selection.Copy
Hoja1.Range("g30").Select
ActiveCell.PasteSpecial
On Error Resume Next
'si el valor que contiene mi formula da error o no esta que cambie de color rojo no esta y verde si esta
If Hoja3.Range("a8").Value = "#N/A" Then
Label8.BackColor = RGB(255, 0, 0)
MsgBox (as & " / NO ESTA EN LISTADO AF")
Else
MsgBox (as & " /AF  OK")
Label8.BackColor = RGB(154, 205, 50)
`aqui las etiquetas toman los valores de mis formulas de buscarv
af1.Caption = Hoja3.Range("a8").Value
af2.Caption = Hoja3.Range("a9").Value
af3.Caption = Hoja3.Range("a10").Value
End If
If Hoja3.Range("a11").Value = "#N/A" Then
MsgBox (as & " / NO ESTA EN LISTADO ")
Label7.BackColor = RGB(255, 0, 0)
Else
MsgBox (as & " /  OK")
Label7.BackColor = RGB(154, 205, 50)
mer1.Caption = Hoja3.Range("a11").Value
mer2.Caption = Hoja3.Range("a12").Value
mer3.Caption = Hoja3.Range("a13").Value
mer4.Caption = Hoja3.Range("a14").Value
'Hoja1.Range("g30").Value = ""
End If
Application.ScreenUpdating = True
Application.CutCopyMode = False
'ActiveWorkbook.Save
Hoja1.Range("j24").Select
. Gracias experto me sirvió tu respuesta
Aunque al final lo realize de esta manera.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas