Jump to content

JaimeDavid27

Members
  • Content Count

    22
  • Joined

  • Last visited

About JaimeDavid27

  • Rank
    Member
  • Birthday 05/27/1986
  1. Funciona a la perfección, tal y como lo necesitaba, muchas gracias, no conocía eso de los controles.por favor dar paso a cerrar el tea. PD: adjunto el archivo por si alguien lo necesite Libro1.zip
  2. Saludos, Si no me equivoco... es esto lo que necesitas? te colocas sobre alguna celda que tenga los "semaforos" y luego ejecutar la macro con "F8" va a contar los que cumplen con la condición que está el formato condicional... me comentas... Matriz Especialidades (mod).zip
  3. Saludos, Con el permiso de: chkenshin sería así: Sub copiarh() Application.Calculation = xlCalculationManual Workbooks.Open Filename:="C:\Users\EFACCI\Desktop\FO-RH23-2.xls" Dim milibro As Object Set milibro = ThisWorkbook Sheets("Checadas").Select ' si no le pones el destino a que libro deseas copiar la hoja siempre te creará un libro nuevo Sheets("Checadas").Copy after:=milibro.sheets(1) milibro.Activate Cells.Copy Cells.PasteSpecial xlPasteValues Application.CutCopyMode = False Application.Calculation = xlCalculationAutomatic End Sub [/CODE] con eso no deberías tener problemas, pues conviertes toda la hoja a valores
  4. Saludos a todos de esta gran comunidad, nuevamente recurro a ustedes para que me ayuden a un gran problema que tengo y no encuentro solución. El excel que adjunto sólo tiene la información necesaria para tales fines, dicho excel conecta una BD y obtiene la información necesaria, pero esta consulta no siempre tienen las mismas columnas, pues dependiendo del formulario en que se esté, obtiene la información y el problema se origina aquí: Al mostrar un formulario que tiene 5 label y 5 textbox, todo ellos están por defecto con una visibilidad de "false", al mostrarse el formulario en el evento "Initialize", este muestra la cantidad de objetos necesarios según la cantidad de columnas, actualmente esto funciona con IF, pero se quiere hacer que esto funcione con una estructura repetitiva, un FOR, en el archivo adjunto encontrarán mucho mas detalle así como los formularios y demás. Espero poder haberme explicado y desde ya muchas gracias por su tiempo prestado. Libro1.zip
  5. Bueno te soy honesto estoy en mi celular ...... así que he hecho todo lo posible para poner bien explicado espero te sirva .... y he probado con las distintas fecha que me dices y no veo algo raro . ... he subido con otro nombre te dejo el link https://www.dropbox.com/s/614h272xwb1jmjp/JD_Form_MuestraEdad2.xlsm
  6. Ahora si entiendo mejor. ... https://www.dropbox.com/s/7tylbqp3bqnyf5r/JD_Form_MuestraEdad.xlsm A descargar el archivo .... creo que ahora si cumple con lo que necesitas aunque es de una manera muy rudimentaria tal vez pueda ser de utilidad .... al llegar a mi casa pienso en una más elaborada.... Saludos
  7. Saludos, Espero te sirva..... https://www.dropbox.com/s/t3zl2jgqthyepuk/JD_vba_ReuneData_1Hoja.xlsm JD - - - - - Mensaje combinado - - - - - Saludos, Espero te sirva..... https://www.dropbox.com/s/t3zl2jgqthyepuk/JD_vba_ReuneData_1Hoja.xlsm JD
  8. Saludos, No soy muy bueno con formularios.... pero espero te sirva el archivo....... https://www.dropbox.com/s/7tylbqp3bqnyf5r/JD_Form_MuestraEdad.xlsm Me comentas
  9. Re: Solución al "sincronizar" Tablas Dinamicas "condicionadas" Saludos nuevamente.... despues de probar y probar... y realizar todo tipo de pruebas... este es mi codigo final en el cual funciona todo a la perfección. Public Tablas As Variant Sub HomeFiltro() Dim Filtro As String Dim Valor As String Application.ScreenUpdating = False Application.Run "Secur_Sheets_Protect", 0, "HOME", "AÑO", "MES", "DIA", "SEGMENT_CAMPA", "CARGO_AUDIT", "COORD_AGEN", "PARETO", "PRECISIONES", "IMPRESION" Select Case Application.Caller Case "lst_Anio" Filtro = "AÑO" Valor = Range("Home_PivotAño") Tablas = Array("pt_Home_Año") Case "lst_Mes" Filtro = "MES" Valor = Range("Home_PivotMes") Tablas = Array("pt_Home_Mes", "pt_Mes_Mes_Porcentaje", "pt_Mes_Mes_Pec") Case "lst_Dia" Filtro = "DIA" Valor = Range("Home_PivotDia") Tablas = Array("pt_Home_Dia", "pt_Dia_Dia_Porcentaje", "pt_Dia_Dia_Pec") Case "lst_Segmento" Filtro = "SEGMENTO" Valor = Range("Home_PivotSegmento") Tablas = Array("pt_Home_Segmento_Cnt", "pt_Home_Segmento_Prc", "pt_Precisiones_Prc", "pt_Segment_Campa_Pec") Case "lst_Campania" Filtro = "CAMPAÑA" Valor = Range("Home_PivotCampania") Tablas = Array("pt_Home_Campaña", "pt_Segment_Campa_xy") Case "lst_Tipo" Filtro = "TIPO LLAMADA" Valor = Range("Home_PivotLlamada") Tablas = Array("") Case "lst_Cargo" Filtro = "CARGO" Valor = Range("Home_PivotCargo") Tablas = Array("pt_Home_Cargo") Case "lst_Auditor" Filtro = "AUDITOR" Valor = Range("Home_PivotAuditor") Tablas = Array("pt_Home_Auditor") Case "lst_Coordinador" Filtro = "COORDINADOR" Valor = Range("Home_PivotCoordinador") Tablas = Array("pt_Home_Coordinador") Case "lst_Agente" Filtro = "AGENTE" Valor = Range("Home_PivotAgente") Tablas = Array("pt_Home_Agente") End Select Application.Run "Actualiza_Listas" Application.Run "PivotControl_Filtro", Filtro, Valor Application.ScreenUpdating = True End Sub Private Sub PivotControl_Filtro(Filtro, Valor As String) ', ParamArray Hojas() As Variant) Dim pt As PivotTable Dim PvtTbl As PivotTable On Error Resume Next 'HojasPivot son las hojas que recorrerá la macro para actualizar las tablas dinamicas a nivel de filtro, sin embargo sólo actualizará las tablas dinamicas que está en la variable a nivel global, sólo si no da error HojasPivot = Array("HOME", "AÑO", "MES", "DIA", "SEGMENT_CAMPA", "CARGO_AUDIT", "COORD_AGEN", "PARETO", "PRECISIONES", "IMPRESION") For i = 0 To UBound(HojasPivot) For Each pt In SHEETS(HojasPivot(i)).PivotTables pt.PivotFields(Filtro).CurrentPage = Valor Next pt Next i For i = 0 To UBound(HojasPivot) For y = 0 To UBound(Tablas) Worksheets(HojasPivot(i)).PivotTables(Tablas(y)).PivotFields("(Todas)").ClearAllFilters If Valor <> "(Todas)" Then For Each pvtItm In Worksheets(HojasPivot(i)).PivotTables(Tablas(y)).PivotFields("(Todas)").PivotItems If pvtItm = Valor Then pvtItm.Visible = True Else pvtItm.Visible = False End If Next End If Next y Next i End Sub [/CODE] Realmente muchas gracias [color=#4D5153]mjrofra, por tu ayuda y por darme pistas para optimizar otras macros en donde se le dan variables como arrays, ahi eh resumido un monton de codigo en otras macros..., nuevamnete gracias. [/color] y dar por cerrado el tema. [color=blue]- - - - - Mensaje combinado - - - - -[/color] Saludos nuevamente.... despues de probar y probar... y realizar todo tipo de pruebas... este es mi codigo final en el cual funciona todo a la perfección. [CODE] Public Tablas As Variant Sub HomeFiltro() Dim Filtro As String Dim Valor As String Application.ScreenUpdating = False Application.Run "Secur_Sheets_Protect", 0, "HOME", "AÑO", "MES", "DIA", "SEGMENT_CAMPA", "CARGO_AUDIT", "COORD_AGEN", "PARETO", "PRECISIONES", "IMPRESION" Select Case Application.Caller Case "lst_Anio" Filtro = "AÑO" Valor = Range("Home_PivotAño") Tablas = Array("pt_Home_Año") Case "lst_Mes" Filtro = "MES" Valor = Range("Home_PivotMes") Tablas = Array("pt_Home_Mes", "pt_Mes_Mes_Porcentaje", "pt_Mes_Mes_Pec") Case "lst_Dia" Filtro = "DIA" Valor = Range("Home_PivotDia") Tablas = Array("pt_Home_Dia", "pt_Dia_Dia_Porcentaje", "pt_Dia_Dia_Pec") Case "lst_Segmento" Filtro = "SEGMENTO" Valor = Range("Home_PivotSegmento") Tablas = Array("pt_Home_Segmento_Cnt", "pt_Home_Segmento_Prc", "pt_Precisiones_Prc", "pt_Segment_Campa_Pec") Case "lst_Campania" Filtro = "CAMPAÑA" Valor = Range("Home_PivotCampania") Tablas = Array("pt_Home_Campaña", "pt_Segment_Campa_xy") Case "lst_Tipo" Filtro = "TIPO LLAMADA" Valor = Range("Home_PivotLlamada") Tablas = Array("") Case "lst_Cargo" Filtro = "CARGO" Valor = Range("Home_PivotCargo") Tablas = Array("pt_Home_Cargo") Case "lst_Auditor" Filtro = "AUDITOR" Valor = Range("Home_PivotAuditor") Tablas = Array("pt_Home_Auditor") Case "lst_Coordinador" Filtro = "COORDINADOR" Valor = Range("Home_PivotCoordinador") Tablas = Array("pt_Home_Coordinador") Case "lst_Agente" Filtro = "AGENTE" Valor = Range("Home_PivotAgente") Tablas = Array("pt_Home_Agente") End Select Application.Run "Actualiza_Listas" Application.Run "PivotControl_Filtro", Filtro, Valor Application.ScreenUpdating = True End Sub Private Sub PivotControl_Filtro(Filtro, Valor As String) ', ParamArray Hojas() As Variant) Dim pt As PivotTable Dim PvtTbl As PivotTable On Error Resume Next 'HojasPivot son las hojas que recorrerá la macro para actualizar las tablas dinamicas a nivel de filtro, sin embargo sólo actualizará las tablas dinamicas que está en la variable a nivel global, sólo si no da error HojasPivot = Array("HOME", "AÑO", "MES", "DIA", "SEGMENT_CAMPA", "CARGO_AUDIT", "COORD_AGEN", "PARETO", "PRECISIONES", "IMPRESION") For i = 0 To UBound(HojasPivot) For Each pt In SHEETS(HojasPivot(i)).PivotTables pt.PivotFields(Filtro).CurrentPage = Valor Next pt Next i For i = 0 To UBound(HojasPivot) For y = 0 To UBound(Tablas) Worksheets(HojasPivot(i)).PivotTables(Tablas(y)).PivotFields("(Todas)").ClearAllFilters If Valor <> "(Todas)" Then For Each pvtItm In Worksheets(HojasPivot(i)).PivotTables(Tablas(y)).PivotFields("(Todas)").PivotItems If pvtItm = Valor Then pvtItm.Visible = True Else pvtItm.Visible = False End If Next End If Next y Next i End Sub [/CODE] Realmente muchas gracias [color=#4D5153]mjrofra, por tu ayuda y por darme pistas para optimizar otras macros en donde se le dan variables como arrays, ahi eh resumido un monton de codigo en otras macros..., nuevamnete gracias. [/color] y dar por cerrado el tema.
  10. re: Solución al "sincronizar" Tablas Dinamicas "condicionadas" Muy Interesante al igual que sugenrencia... voy a probar y te comento....
  11. Re: Solución al "sincronizar" Tablas Dinamicas "condicionadas" Saludos nuevamente y gracias pro la ayuda incondicional, realmente el archivo adjunto esta de lujo!!!, pero (cargoso yo) realmente no lo entiendo..... sobre todo en esa parte del codigo del Case Select Case Application.Caller Case "lstYear" Filtro = "AÑO" Valor = Range("Home_PivotAño") Case "lstMonth" Filtro = "MES" Valor = Range("Home_PivotMes") Case "lstDay" Filtro = "DIA" Valor = Range("Home_PivotDia") End Select [/CODE] Realmente me perdí... y bueno esos filtro son solo unos cuantos.... trato de amoldar el case, a los demás filtros que tengo.. pero no me funciona... pero sí tengo que rescartar... algo muy interesante... (algo que realmente no se me ocurrió) que a la macro Pivotcontrol es pasar una variable Array y ahí indicar que tablas se van a sincronizar...., y también que tablas van a hacer otro procedimiento.... el otro detalles que también en el mismo archivo al modificar un filtro de una hoja también se debe de actualizar en las demás.... en breve adjunto una muestra..... pero si me has dado luces e ideas bien interesantes..... Nuevamente Gracias!!!!!! [color=blue]- - - - - Mensaje combinado - - - - -[/color] Nuevamente por aqui.... tratando de encajar.... las macros.... pero no me funciona..... un momento de desesperación..... me quede con unos cuantos pelos en la mano... y no es broma realmente me paso ello, por favor nuevamente tu ayuda ya que esta en en la forma que lo quiero hacer.... así se me es mas facil de interpretar.... puesto que sólo quiero que actualice algunas columnas en específico..., bueno con el archivo adjunto creo que vas a entender que es lo que deseo hacer exactamente...... Copia de Control TMP Mod.zip
  12. re: Solución al "sincronizar" Tablas Dinamicas "condicionadas" Muy interesante de verdad.... pero hay un problema más ..... bueno en esa hoja si bien es cierto el archivo original que subi... las TD mostradas que es el de prueba.... muestra registros y cosas similares, sin embargo en la misma hoja tambien hay 3 TD que usan los mismos criterios (Año, Mes, Dia) pero son de otro lado, es decir de otra fuente, al aplicar el for indicado actualiza todos ... de canto... una solución posible es cambiar ese "AÑO" por un nombre similar "AÑO ", al ser así sería diferente, aun no he hecho la prueba..... pero adjunto el mismo archivo con dos soluciones (agrege otro array), en donde "PivotControl" es el codigo que me has dado (Que funciona de mil maravillas" y el otro que es "Pivot_Control", en donde se indica que tablas es específico se va a actualizar.... Te agradecería que puedas darle una revisión y me puedas aconsejar en que se puede resumir....., igual Gracias de antemano por tu tiempo y ayuda Control TMP Mod.zip
  13. re: Solución al "sincronizar" Tablas Dinamicas "condicionadas" Gracias mjrofra, esta perfecto, pocas lineas, y funciona de mil maravillas, estaba haciendo algo así pero me daba un error de que no encuentra la propiedad del filtro o algo así, por ello es que opte en realizar, los arrays, que si era un lio, pero con esto esta resuelto, pero consulta sobre esta parte. "On Error Resume Next" Al poner esta línea de codigo, dice que cada vez que encuentra un error, no se planta, sino que sigue, es correcto??
  14. re: Solución al "sincronizar" Tablas Dinamicas "condicionadas" Gracias mjrofra, he revisando el link y realizado una copia del código, sin embargo, no consigo que funcione, a parte de ello, la verdad no comprendo mucho del codigo puesto ... me das una mano?? sobre todo en esta parte [B]For[/B] [B]Each[/B] ws [B]In[/B] callerPT.Parent.Parent.Worksheets [COLOR=#999988][I]' recorre cada una de las tablas dinámicas que se encuentran en la hoja de[/I][/COLOR] [B]For[/B] [B]Each[/B] pt [B]In[/B] ws.PivotTables [B]If[/B] pt [B]Is[/B] callerPT [B]Then[/B] [COLOR=#999988][I]' no hay necesidad de hacer nada, es la tabla que disparó el evento[/I][/COLOR] [B]Else[/B] [COLOR=#999988][I]' se recorre cada uno de los campos de la tabla dinámica en cuestión y se[/I][/COLOR] [COLOR=#999988][I]' actualiza el filtro, si lo tiene, para que sea igual al de la tabla que[/I][/COLOR] [COLOR=#999988][I]' se cambio originalmente[/I][/COLOR] [B]For[/B] [B]Each[/B] pf [B]In[/B] pt.PivotFields pt.PivotFields(pf.Name).CurrentPage [B]=[/B] callerPT.PivotFields(pf.Name).CurrentPage.Name [B]Next[/B] pf [B]End[/B] [B]If[/B] [B]Next[/B] pt [B]Next[/B] ws [/CODE] en el primer for me pierdo, el "[color=#000000][font=Consolas]callerPT" entiendo que es el nombre de la TD que ha sido modificada, pero lo de parent... no comprendo en nada[/font][/color]
×
×
  • Create New...

Important Information

Privacy Policy