Jump to content

AlexanderS

Members
  • Content Count

    1,263
  • Joined

  • Last visited

  • Days Won

    49

Everything posted by AlexanderS

  1. Creo que mas bien te complicarías mas con PQ, Power Query lo utilizo como una forma de dar formato a mis datos para después con el uso de tablas dinámicas extraer la información y crear mis reportes. Por lo tanto, si tus datos ya tienen el formato ideal y puedes sacar la información directamente de ellos con una tabla dinámica, no veo ventaja de tratarlos en PQ. Saludos.
  2. Prueba el adjunto, agregue las validaciones. La fecha para no desordenar lo que ya tenias la agregue al final Comenta si esto resuelve tu consulta. Saludos. Variables.xlsm
  3. Que tal @Carlos1986, adjunto una solución. Saludos. Variables.xlsm
  4. Hola, con una tabla dinámica tal vez? Comentas. Saludos Prueba Utilidades.xlsx
  5. No se porque pensé que los Checkbox estaban en la hoja directamente, debería funcionar así entonces: Sub lbl_aceptar_Click() Dim ct As Control For Each ct In Me.Controls If TypeOf ct Is MSForms.CheckBox Then If ct.Value = True Then ActiveCell = ct.Caption End If Next End Sub Saludos
  6. Bueno la lógica de la formula seria prácticamente la misma. Saludos Ejercicio 1 rev1.xlsx
  7. La próxima asegúrate de subir un archivo de ejemplo, hace mas sencillo poder ayudarte. Sub lbl_aceptar_Click() Dim ct As OLEObject For Each ct In ActiveSheet.OLEObjects If TypeOf ct.Object Is MSForms.CheckBox Then If ct.Object.Value = True Then ActiveCell = ct.Object.Caption End If Next End Sub Saludos.
  8. Hola, adjunto una posible solución. Saludos. Ejercicio.xlsx
  9. Te colocas en alguna celda vacía de la hoja, insertas un gráfico cualquiera, click derecho sobre el gráfico en blanco, click en seleccionar datos, y deberás agregar las series y categorías a mano sobre la tabla dinámica. Saludos.
  10. Acabo de hacer unas pruebas con unas 9000 IPs y no me dio error, lo pare cuando llevaba unas 1700 filas ya que el proceso es muy lento para mi paciencia, no tengo idea que puede estar pasando. Tal vez buscar alguna API similar, esa era para power bi pero funciono bien en power query por lo pienso que tal vez buscando algo similar... Otra posibilidad es con una tabla auxiliar, pero investigue un poco y es algo complejo pero no imposible aquí alguien realizo una plantilla https://www.someka.net/excel-template/ip-to-country-converter/ aunque esta si hay que pagarla.
  11. No se porque se daño el archivo, vuelvo a subirlo. Pruebas IPs.xlsx
  12. Sobre el error en mi caso no tuve ningún problema ... Me encontré esto en Internet https://www.excelguru.ca/blog/2015/03/11/power-query-errors-please-rebuild-this-data-combination/ , no lo leí al detalle pero parece un error al combinar una consulta local con una externa. Voy a dejar el archivo donde realice la prueba, tal vez te funcione. Saludos.
  13. Que tal @sergio, encontré una forma utilizando una API, en su formato gratuito te permite realizar 10,000 consultas al mes. Bueno esto va así: Entras y te registras en esta pagina https://ipstack.com, cuando te registres te enviara a un Dashboard aqui lo importante es el Access Key. En Power Query donde tienes las consultas con las IPs debes crear una consulta en blanco. En esa consulta y desde el editor avanzado vas a pegar el siguiente código: let Source = (#"IP Address" as text) => let Source = Json.Document(Web.Contents("http://api.ipstack.com/" & #"IP Address"&"?access_key=@@@@@@@@@")), #"Converted to Table" = Record.ToTable(Source), #"Transposed Table" = Table.Transpose(#"Converted to Table"), #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table") in #"Promoted Headers" in Source En esta linea Source = Json.Document(Web.Contents("http://api.ipstack.com/" & #"IP Address"&"?access_key=@@@@@@@@@")), Vas a reemplazar los "@" por el Access Key que te proporciono la pagina, quedando algo así: Source = Json.Document(Web.Contents("http://api.ipstack.com/" & #"IP Address"&"?access_key=e6aas388bfa844fc8be50d51000163e")), Click en listo y esta se guarda como una función, de hecho podrías "invocar" la función con el botón colocar una IP y te devolverá los datos. Ahora para utilizarla en tu tabla de IPs solo debes agregar una Columna Personalizada y colocar la formula: Consulta1([Ip]) Mi función se llama "consulta1" y mi campo en la tabla donde tengo los IPs se llama "Ip" Y eso seria todo, solo es cuestión de expandir la tabla y seleccionar la información de tu gusto. Espero te sea de ayuda. Comentas, saludos.
  14. Hola, el problema es que estas sobreescribiendo el recordset en esta linea recordset.MoveNext y despues no estas contando nada en esta linea UserForm1.TextBox1.Value = recordset.RecordCount ya que la forma en que realizas la consulta no devuelve "filas" para contar si no un valor. Prueba asi: Sub Consulta_Registros() Dim conexion As ADODB.Connection Dim recordset As ADODB.recordset Dim Consulta As String Dim MiBase As String Set conexion = New ADODB.Connection MiBase = "\DBClientes.accdb" conexion.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & Application.ThisWorkbook.Path & Application.PathSeparator & MiBase Consulta = "SELECT * FROM TClientes " Consulta = "SELECT COUNT(Razon_Social) FROM TClientes " Set recordset = New ADODB.recordset recordset.Open Consulta, conexion Dim total_reg As Integer UserForm1.TextBox1.Value = recordset.GetString total_reg = 0 Set recordset = Nothing Set conexion = Nothing End Sub Saludos.
  15. Podrias utilizar Power Query para automatizar este proceso, seria incluso mas eficiente que una macro. http://www.exceleinfo.com/aprendamos-power-query-para-excel-5-consolidar-informacin-de-hojas/ Saludos.
  16. Hola @eugeniocol, una solución simple y sin alterar el código que ya tenias es esta: Sub COMBINAR_4() Columns(5).ClearContents Columns(6).ClearContents Columns(7).ClearContents Columns(8).ClearContents Columns(9).ClearContents FIN_A = Range("A1", Range("A" & Rows.Count).End(xlUp)).Rows.Count FIN_B = Range("B1", Range("B" & Rows.Count).End(xlUp)).Rows.Count FIN_C = Range("C1", Range("C" & Rows.Count).End(xlUp)).Rows.Count FIN_D = Range("D1", Range("D" & Rows.Count).End(xlUp)).Rows.Count For x = 1 To FIN_A For Y = 1 To FIN_B For Z = 1 To FIN_C For AA = 1 To FIN_D FIN_E = FIN_E + 1 On Error GoTo c c: If Err.Number = 1004 Then t = t + 5: FIN_E = 1: On Error GoTo -1 Cells(FIN_E, 6 + t) = Cells(x, 1) Cells(FIN_E, 7 + t) = Cells(Y, 2) Cells(FIN_E, 8 + t) = Cells(Z, 3) Cells(FIN_E, 9 + t) = Cells(AA, 4) Next AA Next Z Next Y Next x End Sub Saludos.
  17. Gracias @Gerson Pineda, entre lo que habia investigado estaba lo de la tabla calendario, aunque a mi me resultaba un poco complicado por la estructura de la BD ( tuve que crear algunas columnas calculadas para poder obtener un número de mes y luego una fecha), al final leyendo un poco el enlace que compartiste y buscando otras referencias logre poder realizar mi cometido con la creación de la tabla calendario. Comparto la formula que me ayudo: =CALCULATE ( [Suma de RealVenta], DATESYTD ( DATEADD ( TablaCalendario[Fecha], -1,YEAR ) ) ) Seguire investigando todo esto de los power de excel y formulas DAX, ya que ahora que inicie en esto pienso que es una herramienta sumanente poderosa y a la cual se le deberia dar mayor importancia ya que facilita mucho el manejo de grandes BD. En mi computadora personal he instalado el Power Bi para probarlo, pero el problema es que en la de mi trabajo por restricciones es un poco complicado de instalar, por lo que por el momento seguire con Power Query. @Gerson Pineda, es probable que nos hablemos mas seguido por este hilo del foro de ahora en adelante. Saludos.
  18. Tengo entendido que es una "caracteristica" de Windows 10, basicamente lo que hace es reanudar la ultima seción antes de que el equipo se apague o reinicie, esto es un extracto de un comentario de un de developer de Microsoft de cuando se introdujo la función en la Fall Creators Update Traducido con google del ingles: Basicamente se abre la ultima aplicación que tenias abierta. Saludos
  19. Que tal, estoy comenzando con esto de Power Query y me surgio un problema con una formula DAX de una medida calculada. Basicamente tengo las ventas del año 2017 al 2019 y en una tabla dinamica necesito realizar el comparativo del año seleccionado en una segmentación vs el año anterior a este, he logrado tener los datos con esta formula: =CALCULATE(BaseVentas[Suma de RealVenta],BaseVentas[Año Fiscal]=2018) Me devuelve las ventas del año 2018 aunque en el filtro de la tabla ("Año Fiscal") tenga el 2019 seleccionado, el problema es obviamente que no pasa nada si selecciono 2018 en el filtro pues la medida siempre me devolvera el 2018. Intente con esto pero no funciono. =CALCULATE(BaseVentas[Suma de RealVenta],BaseVentas[Año Fiscal]=BaseVentas[Año Fiscal] - 1) La idea era que según el valor del filtro "Año Fiscal" restara una unidad y me devuelva los datos, pero no funciona me devuelve datos en blanco. Alguna sugerencia?, he buscado en la web sin resultados, talvez @Gerson Pineda me puedas orientar un poco? Saludos.
  20. Hola @giordancisco , tal como lo indica avalencia no puedes utilizar un RowSource en un listbox utilizando como fuente un recorset, pero puedes utilizar la siguiente instrucción: sql = "Tu consulta" rs.Open Sql, Conexion ListBox1.Column = Rs.GetRows Con esto no hay nesecidad de utilizar un bucle para llenar el listbox Saludos.
  21. Adjunta un archivo excel de ejemplo. Saludos.
  22. Que tal @jeladio, debes ser mas especifico con tu consulta, tambien adjunta un archivo ejemplo. Saludos.
  23. Hola, prueba así. Private Sub ListView1_DblClick() Index = Me.ListView1.SelectedItem.Index ActiveCell.Offset(0, -1) = Me.ListView1.ListItems(Index).SubItems(2) ActiveCell.Offset(0, -2) = Me.ListView1.ListItems(Index).SubItems(1) End Sub Saludos
  24. No creo que necesites un blucle para eso, prueba así: Sub copia() Range("A1", [N1].End(xlDown)).SpecialCells(xlCellTypeVisible).Copy _ Sheets("Balance").Range("A1") End Sub
×
×
  • Create New...

Important Information

Privacy Policy

Ayuda Excel - Madrid, Madrid, ES - Valorada por 6254 personas - Aprender Excel - Total: 4.7 / 5