HOLA ESPERO PUEDAN AYUDARME,
EN UN ARCHIVO QUE UTILIZO COMO BASE DE DATOS CONCENTRO INFORMACIÓN DE VARIAS ÁREAS A TRAVÉS DE VÍNCULOS Y FUNCIONES Y TODO LIGADO A UN ID ÚNICO,
ME PIDEN VARIOS REPORTES QUE PUEDEN SER CLASIFICADOS DE DISTINTA MANERA, POR MUNICIPIO, POR PROGRAMA, POR EMPRESA Y TODO LO OBTENÍA CON TABLA DINÁMICA.
SIN EMBARGO ACTUALMENTE ME SOLICITAN QUE DE MI BASE DE DATOS LLENE VARIAS HOJAS Y CADA HOJA CONTIENE LOS DATOS DE UN "PROGRAMA EN ESPECÍFICO" SON COMO 30 PROGRAMAS ENTONCES YA SABRÁN EL SUPLICIO POR EL MOMENTO LO ESTOY REALIZANDO CON LA FUNCIÓN BUSCARV Y VOY HOJA POR HOJA AGREGANDO LAS COLUMNAS DEL ARCHIVO CONCENTRADOR QUE ME PIDEN INSERTE.
ME PODRÍAN DECIR COMO REALIZAR LA MACRO PARA AUTOMATIZAR ESTE PROCESO SERÍA LO SIGUIENTE, TRATE DE REALIZAR UNA PERO NADA MAS NO ME SALIO
Sub macro_bn()
MsgBox "Abra el archivo de Sabana"
Workbooks.Open Filename:=Application.GetOpenFilename("Todos los archivos de Excel (*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")
'ABRIA EL ARCHIVO CONCENTRADOR
Sabana = ActiveWorkbook.Name:
MsgBox "Abra el archivo de Avances Ejecutivos"
Workbooks.Open Filename:=Application.GetOpenFilename("Todos los archivos de Excel (*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")
Avances = ActiveWorkbook.Name:
'AQUI ABRIA EL ARCHIVO QUE TIENE AGRUPADA LA INFO POR PROGRAMA
largo = Range("A1").CurrentRegion.Columns.Count
alto = Range("A1").CurrentRegion.Rows.Count
'DEFINÍA HASTA DONDE TENÍA DATOS MI ARCHIVO QUE ABRI PARA DESPUES ARRASTRAR LA FORMULA HASTA AHÍ
For i = Range("A1") To largo
If Cells(1, i) = "No de obra" Then obra = i
´MI ID UNICO ERA EL NUMERO DE OBRA , ASI SE LLAMA LA COLUMNA ENTONCES CUANDO LOCALIZARA EL NOMBRE DE ESA COLUMNA TOMARA EL VALOR DE I EN COLUMNA PARA DESPUES UTILIZARLO EN EL BUSCARV
For j = 1 To ActiveWorkbook.Sheets.Count
Sheets(j).Select
´CREO QUE RECORRIA TODAS LAS HOJAS
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[obra],[sabana_definitiva_actualizada.xlsx]completa!R104000C8:R104000C400,276,)"
ActiveCell.Select
Selection.AutoFill Destination:=Range("largo +2:alto")
'INTENTE HACER LA FORMULA Y RECORRERLA PERO NO SALIO :(
Exit For
Next
Next
End Sub
ESPERO ME AYUDEN GRACIAS!!!
no dejes de utilizar tablas dinámicas.
¿qué versión de Excel utilizas?
Si tienes 2010 o posterior puedes utilizar segmentadores (slicers) con tus tablas dinámicas, para mostar sólo los datos de un único programa.
Se trataría entonces de ir cambiando el segmento para que las tablas dinámicas se actualicen y muestren sólo los datos correspondientes.
para cualquier versión de Excel, si pones el programa como filtro de informe de la tabla dinámica, puedes generar una página para cada elemento del filtro (si tienes 30 programas, esto te genera 30 páginas, cada una con su tabla dinámica, particularizada para cada programa)
esto lo tienes en
Herramientas de tabla dinámica>opciones>Tabla dinámica>Opciones>Mostrar páginas de filtro de informes
igual es más fácil crear una macro que recorra el segmentador o que genere las páginas, o simplemente que actualice la tabla dinámica si tus programas siempre son los mismos.
------
Ya sé Excel, pero necesito más.
Te agradezco tu respuesta amigo!
[comentario movido a tema nuevo en el foro: http://www.necesitomas.com/macro-buscar-segmentadores]