Jump to content

naymenos

Members
  • Content Count

    24
  • Joined

  • Last visited

About naymenos

  • Rank
    Member
  • Birthday 08/15/1977

Converted

  • Campos
    ,

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Menudo avance en mi hojas de calculo, dese que he descubierto lo que se puede hacer con Power query, es un gran avance y muhas más velocidad en el proceso de importación de datos externos. Muchas gracias, iré aplicándolo en la medida de lo que vaya necesitando. Ahora mis consultas iran más relacionadas con como manejar Power Query desde vba. Saludos
  2. Hola Gerson, Estoy haciendo pruebas con Power query, lo único que me falta es ver como apoyar desde Vba las consultas de Power Query. Ya tengo mi documento en una nueva versión con una parte terminada en power query ( ha sido un gran descubrimiento ). Sabrías orientarme donde encontrar información de vba para power query?. Por ejemplo me gustaría desde un formulario poder cambiar la ruta de la carpeta donde meto los archivo *.xlsx. Gracias,
  3. Hola Gerson, Anoche estuve viendo guias de power Query, me va a ser de mucha utilidad en el futuro. Aunque en ese caso concreto la macro la uso en un libro compartido con todo mi equipo de trabajo ( Ellos no saben de macros ni de power query ). Actualmente tienen un formulario donde seleccionan los ficheros excel a tratar y pulsan un botón ( El problema está cuando seleccionan varios ficheros , que tarda mucho ). Voy a intentar implementar power query pero mientras tanto sería bueno saber de que forma podría agilizar lo comentado en el post anterior. Un saludo y gracias,
  4. Gracias Gerson, El problema estaba en la doble "", con tu última aportación he solventado bien el asunto. Thx
  5. Hola, Voy a intentar plantear de nuevo un problema que tengo solucionado pero no de la mejor forma ya que es muy muy lento. Os adjunto un excel de Ejemplo con 2 hojas, la primera hoja contiene los datos tal como salen de mi ERP, la segunda hoja contiene los datos tal como yo los necesito para poder trabajar con ellos como si de una base de datos se tratase. Lo que necesito hacer es que sea más eficiente el código que tengo ya que cuando lo utilizo con archivos mas grandes tarda demasiado. En el archivo está el código que estoy usando , para que quede más claro he puesto con fondo amarillo las filas que deberían ser eliminadas y en naranja pongo el texto que estoy buscando para eliminar dicha fila. Muchas gracias RAE EJEMPLO.xlsm
  6. Yo tampoco veo como optimizar más, actualmente dejaré tal como está que funciona. uf = wsDestinoB.Range("B" & Rows.Count).End(xlUp).Row For y = uf To 1 Step -1 If wsDestinoB.Cells(y, 1) Like "*Proyecto*" Then Cells(y, 1).EntireRow.Delete If wsDestinoB.Cells(y, 2) Like "*TOTAL*" Then Cells(y, 2).EntireRow.Delete If wsDestinoB.Cells(y, 3) Like "*Ejercicio*" Or wsDestinoB.Cells(y, 3) = "" Then Cells(y, 3).EntireRow.Delete Next y Gracias por todo
  7. Hola, Tengo un error que debe ser bastante **maravilloso**, tengo una hoja con celdas con las siguientes formulas . =SI.ERROR(SI(ENCONTRAR("Maqui";D6);B5);SI.ERROR(BUSCARV(CONCATENAR($C6;$D6);BEstructura;2;0);"")) Cuando la formula da error, sale en blanco. Pues mi problema es que al usar este código no me detecta la celdas en blanco , imagino que como tienen una formula las cuenta como con datos. Dim rngEst As Integer Dim TuRangoEst As String ufEst = Sheets("Estructura").Range("D5").End(xlDown).Row TuRangoEst = "B5:B" & ufEst rngEst = Range(TuRangoEst).SpecialCells(xlCellTypeBlanks).Count Saludos
  8. Hola, esta solución con el ejemplo funciona de maravilla pero claro, aquí determinas 2 grupos. El primero desde RET hasta Maquinaria y el segundo de EEXF hasta maquinaria, pero en los archivos de origen no siempre habrá 2 grupos , y el texto de RET y EEXF son solo textos de ejemplo. Os pongo el código que yo uso actualmente ( unos post más arriba ) para eliminar las filas que realmente sobran, este código funciona bien pero el problema está en que como es un bucle con varias condiciones , si son varios archivos y ademas tienen muchas lineas es bastante lento.
  9. Hola He subido el libro de ejemplo, también en otra hoja como ha de quedar después de quitar las filas restastes. Lo tienes un poco más arriba. ( Es importe conocer que los datos son ficticios, por lo que en la Columna A nos todos los datos comienzan por RET y EL. Esto lo he puesto por poner un texto. UN saludo
  10. Hola, Importo una serie de archivos que saca nuestra app de gestión, esos archivos tienen subtotales, cabeceras , etc. Lo que hago es un proceso de "limpieza" así le llamo yo para luego copiar y pegar esos archivo en forma de base de datos. Os adjunto un ejemplo del archivo base y de como lo quiero dejar despues de limpiar. Actualmente lo hago mediante este código que os pego ( y funcionar funciona pero cuando importo varios archivos se demora demasiado). uf = wsDestinoB.Range("B" & Rows.Count).End(xlUp).Row For y = uf To 1 Step -1 If wsDestinoB.Cells(y, 1) Like "*Proyecto*" Then Cells(y, 1).EntireRow.Delete If wsDestinoB.Cells(y, 2) Like "*TOTAL*" Then Cells(y, 2).EntireRow.Delete If wsDestinoB.Cells(y, 3) Like "*Ejercicio*" Or wsDestinoB.Cells(y, 3) = "" Then Cells(y, 3).EntireRow.Delete Next y En primer lugar elimino la fila 6 Columna 1, después los subotales columna 2 y por último fila 5 y los huecos en blanco. RAE EJEMPLO.xlsx
  11. Hola, Gracias a ambos, en este caso creo que no puedo hacer agilizar lo que necesito. La opción de seleccionar los que tienen texto , son los que no quiero borrar y la opción de union es muy válida pero necesito implementar que en las celdas seleccionadas de esa union borre las Filas y no consigo hacerlo bien. ( Me salta un error ), Dim rng2 As Range Dim TuRango2 As String uf = wsDestinoB.Range("B" & Rows.Count).End(xlUp).Row TuRango2 = "A1:C" & uf Set rng2 = Range(TuRango2) '.SpecialCells(xlCellTypeBlanks) 'celdas en blanco Application.Union(.SpecialCells(4), .SpecialCells(4)).EntireRow.Delete
  12. Hola Haplox, Estoy sacando mucho partido de las 2 opciones que me has enseñado, pero si quiero depurar un fichero donde además de seleccionar las celdas en blanco. SpecialCells(xlCellTypeBlanks) Quiero seleccionar tambien la fila donde encuentre parte de un texto, o que encuentre texto en mayusculas. Lo que intento es evitar otra vez un bucle para buscar esto, y emplear la potencia que nos da SpecialCells. Gracias por tu ayuda.
  13. Eres un Crack, solo con lo que me has comentado lo he conseguido, con el siguiente código he omitido hacer bucle y conseguir un resultado optimo . al final lo hice así. Dim rng As Range Dim TuRango As String uf = WsDestino.Range("B" & Rows.Count).End(xlUp).Row TuRango = "AL3:AL" & uf Set rng = Range(TuRango).SpecialCells(xlCellTypeBlanks) 'celdas en blanco rng.EntireRow.Delete
  14. El borrado es para eliminar en los datos originiales los subtotales de manera que se quede una base de datos limpia a la hora de traspasar los códigos. Voy a ver la función que comentas a ver si puedo aplicarla.
  15. Hola Haplox ( José ), estoy sustituyendo una parte donde hago limpieza del fichero original eliminando filas donde hay blancos en la columna AL Estoy intentado aplicar la funcion que has usado with pero tengo un problema ya que no me está eliminando algunas filas. Imagino que el problema está en el valor de uf, pero aunque le sume la variable borrados no me lo toma. With Sheets(WsDestino) uf = WsDestino.Range("B" & Rows.Count).End(xlUp).Row For Each cel2 In WsDestino.Range("AL3:AL" & uf+ borrados ) If cel2 = "" Then cel2.EntireRow.Delete Borrados = Borrados + 1 DoEvents Formulario.LTexto.Caption = "Limpiando archivo importado - filas borradas: " & Borrados End If Next cel2 End With
×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png