IMPORTAR ARCHIVO DE TEXTO

24/11/2006 - 20:58 por jmulloa | Informe spam
QUIERO IMPORTAR UN ARCHIVO DE TEXTO QUE CONTIENE LAS LLAMADAS REALIZADAS POR
LAS EXTENCIONES DE MI EMPRESA DELIMITADO POR TABULACIONES, NECESITO QUE POR
CADA EXTENCION ME GENERE UN LIBRO DIFERENTE Y QUE DENTRO DE CADA LIBRO ME
TOTALICE LOS NUMEROS CELULARES Y LOS NUMEROS FORANEOS IGNORANDO LOS NUMEROS
LOCALES, LO BUENO ES QUE LOS NUMEROS LOCALES CONTIENEN 7 DIGITOS Y HAY UNA
COLUMNA CONTIGUA QUE DICE "LOCALES", EN CELULARES TAMBIEN EN LA MISMA COLUMNA
CONTIGUA DICE "CELULAR", PERO EN LAS FORANEAS DICE EL NOMBRE DE LA POBLACION,
COMO PUEDO HACER ESTO DE FORMA AUTOMATICA, ME FALTA MUCHO EN CONOCIMIENTO DE
MACROS Y NO SE COMO HACERLO
Juan Manuel Ulloa Rojas

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
25/11/2006 - 06:42 | Informe spam
hola, juan manuel !

... UN ARCHIVO DE TEXTO... LLAMADAS... POR... EXTENCIONES... DELIMITADO POR TABULACIONES
... QUE POR CADA EXTENCION ME GENERE UN LIBRO DIFERENTE Y
... TOTALICE LOS NUMEROS CELULARES Y LOS NUMEROS FORANEOS [...]



1) abre el archivo de texto 'directamente' desde excel...
2) comenta [+/- exactamente] en que rangos ha quedado la informacion que necesitas 'resumir'
3) comenta [+/- exactemante] que relacion habra entre los datos que se habran de resumir

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Héctor Miguel
01/12/2006 - 09:08 | Informe spam
hola, juan manuel !

prueba con una macro +/- como la siguiente, ejecutada desde la hoja 'importada' de tu archivo de texto:
[no olvides modificar el nombre de dicha hoja en el codigo de la macro]

Sub Hoja_por_extension()
Dim Sig As Byte
Application.ScreenUpdating = False
With Worksheets("hoja1")
.UsedRange.Sort _
Key1:=[a1], Order1:=xlAscending, _
Key2:=[e1], Order2:=xlAscending, Header:=xlYes
.[m2].Formula = "=m1+(a2<>a1)"
.[m2].AutoFill Range(.[m2], Range("m" & .UsedRange.Rows.Count)), xlFillCopy
.[p2].Formula = "=len(g2)>7"
For Sig = 1 To Evaluate("max(m:m)")
Worksheets.Add After:=Worksheets(Worksheets.Count)
.[a1:l1].Copy [a1:l1]
.[o2].Formula = "=m2=" & Sig
.[a1].CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=.[o1:p2], _
CopyToRange:=[a1:l1]
ActiveSheet.Name = [a2]
With [j65536].End(xlUp)
.Offset(1).Formula = "=sum(j2:j" & .Row & ")"
.Offset(1, 1).Formula = "=sum(k2:k" & .Row & ")"
.Offset(1, 2).Formula = "=sum(l2:l" & .Row & ")"
End With
Next
End With
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
EL ARCHIVO FUENTE QUE TENGO ES UN ARCHIVO DELIMITADO POR TABULACIONES CON DOCE COLUMNAS
EXTENSION NOMBRE DEPARTAMENTO TIPO FECHA HORA NUMERO POBLACION DURACION COSTO IVA TOTAL
1050 CELULAR 31/10/2006 03:30PM 4.44811E+11 CELULAR 00:00:09 2.5 0.38 2.88
1050 CELULAR 31/10/2006 03:09PM 4.44811E+11 CELULAR 00:00:44 2.5 0.38 2.88
1050 CELULAR 19/10/2006 02:32PM 4.44811E+11 CELULAR 00:01:18 5 0.75 5.75
NECESITO QUE POR CADA CAMBIO DE EXTENCION QUE CONTIENE "N" LLAMADAS (LAS LLMADAS SON "N" FILAS)
ME CREE UNA HOJA DIFERENTE EN UN MISMO LIBRO Y ME TOTALICE AL FINAL DE LAS FILAS DE CADA HOJA
LOS CAMPOS DE "COSTO", "IVA" Y "TOTAL" SOLO LAS LLAMADAS DEL CAMPO "TIPO" DIFERENTES A "LOCAL" Y "<INDEFINIDO>"
Respuesta Responder a este mensaje
#3 jmulloa
11/12/2006 - 20:26 | Informe spam
HOLA HECTOR ! ! !
DE NUEVO POR AQUI, DISCULPA LA TARDANZA PERO ESTUVE FUERA DE MI CIUDAD, PERO
YA ESTOY DE NUEVO POR AQUI, PROVE LA MACRO QUE ME MANDASTE. ERES UN GENIO
! ! ! !

TODO FUNCIONA DE MARAVILLA, HASTA QUE LLEGA A LA HOJA NUMERO 21, SOLO ME
PONE EL ENCABEZADO DE LAS COLUMNAS Y ME ARROJA EL SIGUIENTE MENSAJE DE ERROR.
. . :

"SE HA PRODUCIDO UN ERROR 1004 EN TIEMPO DE EJECUCION
ERROR DEFINIDO POR LA APLICACION OBJETO"

Y AHI SE QUEDA REVISE EN V.B. Y SE KEDA EN LA SIGUIENTE LINEA. . .:

CopyToRange:=[a1:l1]
ActiveSheet.Name = [a2] < AQUI SE DETIENE LA EJECUCION
With [j65536].End(xlUp)


NO SE QUE SIGNIFIQUE "ERROR 1004" EN LAS HOJAS ANTERIORES QUE GENERA TODO
ESTA DE MARAVILLA, TAMBIEN REVISE EL ARCHIVO IMPORTADO HABER SI HABIA CARGADO
UN CARACTER EXTRAÑO, PERO NO LO HAY, O AL MENOS NO SE VE..


ESPERO ME PUEDAS AYUDAR Y SI NO ES MUCHO EL ENCAJE ME PUDIERAS EXPLICAR LA
MACRO POR QUE LA ESTUVE BIENDO Y POR MAS QUE LE QUICE ENTENDER NO PUDE
HALLARLE HILO :-)

RECIBE SALUDOS CORDIALES!!!

Juan Manuel Ulloa Rojas


"Héctor Miguel" escribió:

hola, juan manuel !

prueba con una macro +/- como la siguiente, ejecutada desde la hoja 'importada' de tu archivo de texto:
[no olvides modificar el nombre de dicha hoja en el codigo de la macro]

Sub Hoja_por_extension()
Dim Sig As Byte
Application.ScreenUpdating = False
With Worksheets("hoja1")
.UsedRange.Sort _
Key1:=[a1], Order1:=xlAscending, _
Key2:=[e1], Order2:=xlAscending, Header:=xlYes
.[m2].Formula = "=m1+(a2<>a1)"
.[m2].AutoFill Range(.[m2], Range("m" & .UsedRange.Rows.Count)), xlFillCopy
.[p2].Formula = "=len(g2)>7"
For Sig = 1 To Evaluate("max(m:m)")
Worksheets.Add After:=Worksheets(Worksheets.Count)
.[a1:l1].Copy [a1:l1]
.[o2].Formula = "=m2=" & Sig
.[a1].CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=.[o1:p2], _
CopyToRange:=[a1:l1]
ActiveSheet.Name = [a2]
With [j65536].End(xlUp)
.Offset(1).Formula = "=sum(j2:j" & .Row & ")"
.Offset(1, 1).Formula = "=sum(k2:k" & .Row & ")"
.Offset(1, 2).Formula = "=sum(l2:l" & .Row & ")"
End With
Next
End With
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
> EL ARCHIVO FUENTE QUE TENGO ES UN ARCHIVO DELIMITADO POR TABULACIONES CON DOCE COLUMNAS
> EXTENSION NOMBRE DEPARTAMENTO TIPO FECHA HORA NUMERO POBLACION DURACION COSTO IVA TOTAL
> 1050 CELULAR 31/10/2006 03:30PM 4.44811E+11 CELULAR 00:00:09 2.5 0.38 2.88
> 1050 CELULAR 31/10/2006 03:09PM 4.44811E+11 CELULAR 00:00:44 2.5 0.38 2.88
> 1050 CELULAR 19/10/2006 02:32PM 4.44811E+11 CELULAR 00:01:18 5 0.75 5.75
> NECESITO QUE POR CADA CAMBIO DE EXTENCION QUE CONTIENE "N" LLAMADAS (LAS LLMADAS SON "N" FILAS)
> ME CREE UNA HOJA DIFERENTE EN UN MISMO LIBRO Y ME TOTALICE AL FINAL DE LAS FILAS DE CADA HOJA
> LOS CAMPOS DE "COSTO", "IVA" Y "TOTAL" SOLO LAS LLAMADAS DEL CAMPO "TIPO" DIFERENTES A "LOCAL" Y "<INDEFINIDO>"



Respuesta Responder a este mensaje
#4 Héctor Miguel
12/12/2006 - 06:24 | Informe spam
hola, juan manuel !

... FUNCIONA... HASTA QUE LLEGA A LA HOJA NUMERO 21
... PONE EL ENCABEZADO DE LAS COLUMNAS Y ME ARROJA EL SIGUIENTE MENSAJE DE ERROR.
"SE HA PRODUCIDO UN ERROR 1004 EN TIEMPO DE EJECUCION ERROR DEFINIDO POR LA APLICACION OBJETO"
... EN LA SIGUIENTE LINEA. . .:
CopyToRange:=[a1:l1]
ActiveSheet.Name = [a2] < AQUI SE DETIENE LA EJECUCION
With [j65536].End(xlUp)
... REVISE EL ARCHIVO IMPORTADO... UN CARACTER EXTRA#O, PERO NO LO HAY, O AL MENOS NO SE VE...



y en la hoja21, que es lo que contiene la celda 'A2' ?
[las posibles causas pudieran ser mas de dos] :-((

comentas [si encuentras] algun detalle mas... 'significativo' ?
saludos,
hector.
Respuesta Responder a este mensaje
#5 Héctor Miguel
13/12/2006 - 21:55 | Informe spam
hola, juan manuel !

... AHORA RESULTA QUE... SE DESEA QUE POR CADA HOJA CREADA SE ALMACENE COMO NUEVO LIBRO
... NECESITO QUE LA HOJA ACTUAL SE GRAVE CON EL A#O Y MES QUE SE ENCUENTRA EN LA CELDA E2
MAS EL NOMBRE DE LA EXTENCION LOCALIZADO EN A2...



las ultimas 4 'instrucciones' del codigo de la propuesta anterior son:
____
End With
Next
End With
End Sub
¨¨¨¨¨¨¨
'justo' ANTES de la instruccion 'Next'... agrega las siguientes:

ActiveSheet.Move
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & [e2].text & "_" & [a2]
ActiveWorkbook.Colse True

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida