¿Cómo puedo generar un buscador con vba?

Tengo una hoja(hoja1) con datos, y una de sus columnas son iniciativas( Todas distintas), a su vez tengo otra hoja(hoja2) con las mismas iniciativas mas una columna con datos(ranking), me gustaría generar un buscador o algo similar que recorra la columna iniciativas de la hoja2 y copie los datos del ranking, para exportarlos a la hoja1, por ejemplo

Hoja 1:

Columna A Columna D

Iniciativa1

Iniciativa2

Iniciativa3

Iniciativa4

Hoja 2:

Columna A            Columna B

Iniciativa1                      5

Iniciativa2                       3

Iniciativa3                       2 

Iniciativa4                       1

Me gustaria que la columna b se copien el la columna D de la hoja 1, pero con el condicionante que se coloquen donde se ubique en la iniciativa correspondiente, ya que las iniciativas pueden estar desordenadas.

1 Respuesta

Respuesta
1

Te anexo la macro para poner en la columna D de la hoja1 los resultados

Sub Iniciativas()
'Por. Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    With h1.Range("D1:D" & h1.Range("A" & Rows.Count).End(xlUp).Row)
        .FormulaR1C1 = "=VLOOKUP(RC[-3],'" & h2.Name & "'!C[-3]:C[-2],2,0)"
        .Value = .Value
    End With
    MsgBox "Fin    "
End Sub

.

.

!C[-3]:C[-2],2,0)"
        .Value = .Value

Dante esa linea de código que quiere decir?, por que si se da el caso de que quiero cambiar datos, por ejemplo cambiar la columna en que se pegaran los datos que debo cambiar, por ejemplo tengo una hoja llamada "AJUSTES", que contiene n iniciativas con valores en la columna "C", y una base de datos llamada consolidado, donde se encuentran las iniciativas, y me gustaría pegar los valores de la columna "C" de ajustes en la columna P del consolidado.

Saludos

Esta línea:

.FormulaR1C1 = "=VLOOKUP(RC[-3],'" & h2.Name & "'!C[-3]:C[-2],2,0)"

tienes que ver con esta:

With h1.Range("D1:D" & h1.Range("A" & Rows.Count).End(xlUp).Row)

Significa que en la columna D va a poner la fórmula

RC[-3] significa misma fila , pero 3 columnas a la izquierda, 3 columnas a la izquierda de la columna D , es la columna A.

C[-3]:[-2], Significa Columna [-3] empezando en D, entonces es columna A : [-2 ] es la B, queda: "A:B"

No logro entender, para cambiar las ubicaciones debo variar los RC [ ] ?, porque estoy tratando de entenderlo, al momento de cambiar la ubicación de destino de D a B, me aparece  #N/A.

Para ser más especifico, que es lo que debo cambiar para poder replicar este procedimiento con otras columnas, etc.

Tienes que cambiar esto:

    With h1.Range("D1:D" & h1.Range("A" & Rows.Count).End(xlUp).Row)
        .FormulaR1C1 = "=VLOOKUP(RC[-3],'" & h2.Name & "'!C[-3]:C[-2],2,0)"

indicar en qué columna quieres la fórmula. "D1:D"

En qué columna tienes siempre datos "A"

Qué fórmula vas a poner "Vlookup"

Qué va a buscar RC[-3]

En dónde va a buscar C[-3]:C[-2]

El número de columna de regreso 2

Y si la coincidencia es exacta 0


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas