Macro que busca una cantidad y la extrae a un lugar especifico

Estoy buscando una macro en vba que busque una cantidad en una hoja en especifico, y luego la ponga en la misma línea. Le agrego una imagen para que sea más especifico.

Por ejemplo en la columna Importe_subtotal, esa cantidad la busco en la hoja H2 ventas, y luego la pego en la columna Abonos, tengo que ue traer la cantidad y la columna tipo, anexo foto de la hoja H2 ventas

Lo intente con buscarv, pero no logro tener el resultado esperado

2 Respuestas

Respuesta
1

Solo una sugerencia para utilizar la función buscav debes tener dos nombres en común en ambas hojas por ejemplo donde tienes la descripción de las facturas en la columna C deberías de escribir diario 37, diario 36 el que corresponda a cada factura, y ya en la hoja 2 ventas columna f10 puedes escribir =buscarv(B10, C2:E40, 3) los rangos los e supuesto y el rango incluye el nombre de la hoja IVA FISCAL si no me equivoco

Respuesta
1

Especifica algunas cosas que no se entienden...

¿Cuál es la columna "importe_subtotal"?

¿Qué datos hay escritos en la hoja que supongo que representa la segunda foto? ¿Los datos de Diario?... ¿Supongo?

Y mas importante... saca la foto en la que se vean los encabezados para poder armar una fórmula... e indica un ejemplo de que celda se escribe, en base a que valores... de manera específica.

Muchas gracias por la respuesta, te adjunto las imágenes que me pides, remarque en color amarillo la información a extraer que es la seleccionada en amarillo. 

Tiene que traer los datos de la clumna "B" y la "F", en la "I" y la "J" de la hoja 1, cuando los encuentre en ese rango .

Sigo sin entender algunas cosas:

1) Solo para aclarar, la hoja de abajo (columnas B y F) tiene los datos que van para arriba (I, J), ¿no?

2) ¿En base a que criterio esos datos se copian? Es decir que datos hay en la tabla de arriba, ¿qué tenga algo relacionado en la de abajo que haga que se deban pasar los datos? ¿El monto en la columna E?

3) Para no volver a preguntar despues... como se llaman cada una de las hojas (la de arriba y la de abajo)

Es correcto como dice que las columnas "B","F" van para arriba "I","J", el criterio para copiar es buscar la cantidad en la columna "E", por ejemplo si 5,050,897.73 se encuentra en la columna "F" de la hoja con el nombre "H2 Ventas", copiar de esa línea esa misma cantidad y de esa misma línea la columna "B" que es su diario. Espero haber sido un poco más especifico, y muchas gracias por sus prontas respuestas.

Hecho,

Para simplificar las cosas y hacer la lectura de la formula más sencilla, sugiero colocar nombres a algunos rangos... esto se hace (por si estás familiarizado) seleccionando el rango y escribiendo en el casillero donde normalmente se ve la direccion de la celda (el casillero a la izquierda de la barra de fórmulas) el nombre.

He asignado los siguientes nombres, todos en la hoja "H2 Ventas"

Inicio: celda A9

titulos:    rango $B$9:$F$9

polizas:  rango $B$10:$B$24

abonos:  rango $F$10:$F$24

(He asumido que la ultima fila con datos es la fila 24, obviamente se debe ajustar eso a lo que se encuentre en realidad en tu hoja).

Ahora con eso, en la celda I3 de la otra hoja (no me quedó claro como se llama)...

=DESREF(inicio,K.ESIMO.MENOR(SI(abonos=$E3,FILA(polizas)-FILA(inicio),""),CONTAR.SI($E$2:$E3,$E3)),COINCIDIR(I$2,titulos,0))

que debe ser introducida como fórmula matricial (Control+Shift+Enter)

esa fórmula luego se puede copiar a las demás celdas.

Respondí hace un momento, pero no estoy seguro si la página web cargó adecuadamente...

Repito la respuesta por si acaso...

Hecho, para simplificar las cosas y hacer la lectura de la fórmula más sencilla, sugiero colocar nombres a algunos rangos... esto se hace (por si estás familiarizado) seleccionando el rango y escribiendo en el casillero donde normalmente se ve la dirección de la celda (el casillero a la izquierda de la barra de fórmulas) el nombre.

He asignado los siguientes nombres, todos en la hoja "H2 Ventas"

Inicio: celda A9

titulos:    rango $B$9:$F$9

polizas:  rango $B$10:$B$24

abonos:  rango $F$10:$F$24

(He asumido que la ultima fila con datos es la fila 24, obviamente se debe ajustar eso a lo que se encuentre en realidad en tu hoja).

Ahora con eso, en la celda I3 de la otra hoja (no me quedó claro como se llama)... =DESREF(inicio,K.ESIMO.MENOR(SI(abonos=$E3,FILA(polizas)-FILA(inicio),""),CONTAR.SI($E$2:$E3,$E3)),COINCIDIR(I$2,titulos,0))

Que debe ser introducida como fórmula matricial (Control+Shift+Enter) esa fórmula luego se puede copiar a las demás celdas.

adjunto imágenes

¡Gracias!

Wow amigo me funciono a la perfección, eres un master, ahora la tengo que adaptar para algunas hojas más. Muchas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas