Saltar al contenido

Generar macro

publicado

Tengo un archivo quisiera generar una macro que me extraiga la información de las transacciones ordenadas en una hoja de excel y no encuentro la manera de solucionar ya que tiene varios emcabezados, Gracias por su ayuda adjunto archivo de ejemplo.

20131009_20131009.txt

Featured Replies

publicado
  • Autor

Claro, en el archivo de excel adjunto detallo lo que quiero de respuestas, cabe recalcar que no todo los archivos son iguales, ya que se diferencian porque tienen mas archivos o menos, a mi manera de pensar seria generar un filtro que me ejecute la macro por fecha y me vaya ordenando pero no le logro entender..

prueba.xls

publicado

Buenos dias, tarde o noche excel-entes

Saludos Pelusurf

Una forma sencilla es:

1- lee el block con excel.

2- elimina todas las filas que no te interecen.

3- selecciona solo la columna A y en la pestaña Datos selecciona Texto en columnas.

4- Si ya lo haces así disculpa.

Esto mientras Armando te prepara el macro apropiado.

  • 2 weeks later...
publicado
  • Autor

si eso hago pero lo que pasa es que son varios archivos y quería ver la forma mas eficiente de hacerlo

  • 4 weeks later...
publicado

Hola, intenta con esto:

Sub Filtrar()
Application.ScreenUpdating = False
LR = Cells(Rows.Count, 1).End(xlUp).Row
Columns(1).Insert
Range("A1:A" & LR).Formula = "=LEFT(B1,4)=""2013"""
Range("A1").AutoFilter Field:=1, Criteria1:="FALSE"
Range("A1").CurrentRegion.EntireRow.Delete
Columns(1).Delete
Columns(1).TextToColumns DataType:=xlDelimited, ConsecutiveDelimiter:=True, Space:=True
Columns(3).NumberFormat = "0"
Columns(6).NumberFormat = "0.00"
Application.ScreenUpdating = True
End Sub[/CODE]

publicado
  • Autor

chevere, me puede explicar como funciona estimado? y si muestra los resultados como quiero pero me queda una cabecera, talvez una idea de como eliminarlas osea que solo queden detalle.

publicado

Segun yo en la prueba con tu archivo no queda ninguna cabecera.

1. Inserta una columna a la izquierda de las existentes

2. Por formula inserta true o false en esa columna para las filas que empiezan con 2013

3. Filtra esa columna para mostrar solo filas false

4. Elimna las filas con false

5. Elimina la columna insertada

6. Aplica texto a columnas

7. Formatea la columna 3 para enteros y la 6 para 2 decimales

Si corres el codigo linea por linea veras cada paso.

publicado
  • Autor

si, solo hay un problema la columna 3 no tiene que ser numero, ya que son tarjetas y al cogerlo como numero el ultimo digito le pone cero, hay alguna forma de que esa columna la haga texto y asi no se cambie el ultimo digito

publicado
  • Autor

si eso hago pero me sigue saliendo en numero al momento de generar la macro

publicado
  • Autor

no igual, se cambia el ultimo digito aplico otros formatos y solo sale de resultados numeros

publicado
  • Autor

habra la manera de ese codigo reutilizarlo y poniendo la ruta donde se encuentra el archivo extraiga los datos?? la parte del texto ya se soluciono

Archivado

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