Isertar valor con macro desde una tabal a una columna

Tengo una tabla de valor UF Hoja2

Las linea son días y columnas son los meses de año

Necesito poner los valores en las celdas de otra hoja1 del mismo libro donde tengo una columna los día y la otra los meses y una tercera valor UF

La idea es que busque el valores en la tabla UF según el día y el el mes y los inserte en la tercera columna, y esto lo realice con todo los registro de la hoja uno(estos pueden ser miles.

1 Respuesta

Respuesta
1

No es necesario que te compliques con macros, con un =indice() es más que suficiente, pero bueno.

Te dejo esto como ejemplo:

Sub Valoruf()
Set a = Sheets("Hoja2")
b = Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To b
c = Cells(x, 2)
y = Cells(x, 1)
Set d = a.Rows(1).Find(c, LookAt:=xlWhole)
Cells(x, 3) = a.Cells(y + 1, d.Column)
Next x
End Sub

Cabe señalar que ambas tablas deben comenzar en la celda "A1"

Estimado,  funciona bien  el las lo que usted indica, muchas gracias

Pero, tengo la siguiente situación:

en la hoja 1(llamada "base" tengo los días  en la columna"S" y los mese en la columna"T"

la hoja2 se llama "UD" y esta desde la celda a1

no me funciona me da error.

Como funciona el indice con los mismo parámetros.

Te dejo con fórmula:

=INDICE(Hoja2!$B$2:$M$31,COINCIDIR(Hoja1!A2,Hoja2!$A$2:$A$31,1),COINCIDIR(Hoja1!B2,Hoja2!$B$1:$M$1,0))

Esta formula es considerando lo mismo que hace la macro, aplicalo de acuerdo a tus rangos y nombres de tus hojas.

Estimado

Funciono bien, pero las fórmulas ponen pesado el archivo, pues la base son contiene muchas filas, me puede ayudar a configurar la macros según las celadas.

Gracias

Estimado

tiene alguna novedad?

Te paso la macro:

Sub uf()
Set h = Sheets("UD")
a = Cells(Rows.Count, 19).End(xlUp).Row
With h
For b = 2 To a
Set c = .Columns("A").Find(Cells(b, 19), LookAt:=xlWhole)
Set d = .Rows(1).Find(Cells(b, 20).Value, LookAt:=xlWhole)
Cells(b, 21).Value = .Cells(c.Row, d.Column)
Next b
End With
End Sub

Si es necesario cambias los datos por los tuyos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas