Saltar al contenido

Datos variables en base de datos extraer con macro

publicado

Buen día,

Solicito su colaboración con lo siguiente:

Tengo que traer una información de una base de datos con clientes para ajustar un informe con las ejecutivas manejan cada cliente.

Yo tengo la información que que cliente mueve cada ejecutiva.

?ui=2&ik=d83504a65b&view=fimg&th=14c521461eb1ac20&attid=0.2&disp=emb&realattid=ii_14c5209ab3982e55&attbid=ANGjdJ9FDi17-uc4Zs0MFiqG93-YyCgOfnkra0htAoekC9p05uqdfkPYaHdwGY1eSXjWBlwecOG1rxjfEo9aZCY5XxosLqlYB5raYTkyJ4CFU5RzuHkr-PoIcGO0GgU&sz=w544-h348&ats=1427373984461&rm=14c521461eb1ac20&zw&atsh=1

Estaba extrayendo ya de la información pegada, con una macro los clientes de la ejecutiva "A" por medio de un filtro avanzado con los datos que tengo previamente de que clientes maneja esta ejecutiva "A" en el rango de selección del filtro avanzado. Hasta ahí no hay problema.

?ui=2&ik=d83504a65b&view=fimg&th=14c521461eb1ac20&attid=0.3&disp=emb&realattid=ii_14c5207a164453b5&attbid=ANGjdJ9BLHAls4nuM5FvuGKLMp2lHJUkAhuMYOVah2xcujwSrUH1fxDI6WIYJXC4m_4ruoF2Gr2v7Wwhh9UoWvBfoKzmkecNVWCgzc2P-OI2ufLXQN0PKhibUcl_-nU&sz=w1124-h338&ats=1427373984461&rm=14c521461eb1ac20&zw&atsh=1

Los datos que debe traer para este ejemplo son: Cliente de la ejecutiva "A", Semana del año "2015-8", Fecha de paz y salvo "0000-00-00" Tipo "Liq".

El problema me surge, porque por ejemplo de los 10 clientes que maneja la ejecutiva "A" sólo se movieron 7 para este informe. Como es obvio la macro cuando realiza esta orden, trae la información inexacta. La instrucción que hice por excel es la siguiente:

?ui=2&ik=d83504a65b&view=fimg&th=14c521461eb1ac20&attid=0.1&disp=emb&realattid=ii_14c520c0eed7725e&attbid=ANGjdJ9kTE2qlhgL7wnOzJBoarAEB1o1bFz-6d0horb32CYNsD92EkGRXMtJ8ekuPC9pNGHPj6K-6rSeLg0AAQrUXf8inkcoVWuw8cATTJBzahOln8c6Ft-7l45IDmY&sz=w1124-h262&ats=1427373984462&rm=14c521461eb1ac20&zw&atsh=1

Estoy intentando una formulación en la celda "V1" :

?ui=2&ik=d83504a65b&view=fimg&th=14c521461eb1ac20&attid=0.4&disp=emb&realattid=ii_14c5210ac8cc3322&attbid=ANGjdJ9Jw5ABH0Jrlm4-7sHCeRyB70kuetQg3S8X1INR8SqHstZ9Erkh2CNBoxOw4G110q0432INnG5lSdg_S3IXNAg_LqJvrFD96B9M5qD7_8mrh_0rfBI2LDCCR7I&sz=w690-h600&ats=1427373984462&rm=14c521461eb1ac20&zw&atsh=1

Pero no conozco un código que me permita traer el valor del rango "V1" en la macro adjunta.

No se si este es el mejor modo de realizar las cosas, o si tienen una nueva idea que me permita resolver este problema.

Agradezco muchísimo su colaboración, no soy muy diestro con el Visual Basic y lo que intento programar, lo hago es por el excel y luego miro el Visual.

ISSE1.zip

Featured Replies

publicado

saludos [uSER=186303]@Alejo Rodríguez[/uSER], intente ver el archivo para ayudar pero NO entendi que necesitas realmente, las imagenes no las veo dan error; si explicas exactamente lo que quieres a ver si logro entenderte.

publicado
  • Autor
saludos [uSER=186303]@Alejo Rodríguez[/uSER], intente ver el archivo para ayudar pero NO entendi que necesitas realmente, las imagenes no las veo dan error; si explicas exactamente lo que quieres a ver si logro entenderte.

Buen día y gracias por atender este caso.

La idea en si, es que de una base de 10 clientes que maneja una ejecutiva, se debe obtener un informe del movimiento de los mismos con otras variables adicionales.

Por esto, lo hice por filtro avanzado, tomando las otras variables necesarias para el informe, además del cliente, como: Semana del año "2015-8", Fecha de paz y salvo "0000-00-00" Tipo "Liq", como muestro en la imagen.

Pero que pasa, si uno de estos 10 clientes, por ejemplo el No 7 no tuvo movimiento, la programación que hice con el filtro avanzado no funciona.

Por lo anterior, intenté que en una celda me calculara el rango de las variables con los clientes que si tuvieron movimiento (celda V1), pero no tengo el conocimiento de como vincular la información resultante en esta celda, a la información que necesita el filtro avanzado, con el fin de lograr que los clientes que debe buscar, sean los que realmente se movieron y la información sea exacta.

Así mismo, debo tener en cuenta, que la información de los clientes debe ser flexible y fácilmente maniobrable porque se presenta rotación tanto de ejecutivas vs clientes, como clientes vs ejecutivas, es decir, pueden rotarse clientes entre ellas, pueden ingresar nuevos clientes, pueden irse clientes, etc.

El archivo trae 5 hojas y en la hoja con el nombre de "Informa PYS" esta la base de datos donde debo filtrar la información y en la celda V1 está la formulación que intenté obtener del rango de las variables del filtro avanzado.

No se si este es el mejor método o hay algún otro que obviamente desconozco, porque como comenté, no conozco mucho lenguaje de visual basic. Lo que hago, lo hago desde el excel y luego lo visualizo por programador.

Muchas gracias por tu colaboración,

Cordial Saludo

Alejandro Rodríguez

publicado

saludos [uSER=186303]@Alejo Rodríguez[/uSER], disculpa pero de verdad sigo sin enteder, no se si sean las imagenes que no logro ver (si quieres mostrarme una imagen por favos subela a otro servidor, donde estan no logro verlas) o no se que es; recuerda que quien conoce y sabe usar su archivo eres tú, así que debes explicar específicamente lo que quieres, por ejemplo:

yo quiero que en la hoja "X" al llenar la celdas "a", "b" y "c" se ejecute una macro que me traiga los datos de la hoja "W" y los coloque en tal sitio.

trata de explicarmelo así para ver si entiendo, intente ver las macros para ver si lograba dar con el requerimiento pero nada.

suerte

publicado
  • Autor

Buenas noches [uSER=133908]@bigpetroman[/uSER], y gracias por seguir con este caso.

Lo se, es un poco difícil de explicar la necesidad general pero voy a explicar la necesidad específica.

Puntualmente necesito que esta parte de la macro que señalo en rojo ("W1:Y7"):

Range("A1").Select

Range("A1:T5000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _

Range("W1:Y7"), Unique:=False

Range(Selection, Selection.End(xlDown)).Select

Columns("C:C").Select

La tome de la celda "V1" de la hoja "Informa PYS". Es decir, que pueda ser variable.

Muchas gracias por tu colaboración y paciencia

Cordial Saludo

Alejandro Rodríguez

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.