Como extraer un numero de teléfono de varios TXT y representarlos en una hoja de Excel

En mi lugar de trabajo todo el tiempo estoy haciendo mis tareas con archivos .txt y cada archivo contiene diferentes datos, entre ellos un numero de teléfono, como no se hacerlo, abro un txt copio el numero de teléfono y lo pego en una celda de Excel, luego abro otro txt, copio otro numero de teléfono y lo pego en la celda siguiente y asi uffff, hay carpetas con hasta cientos de archivos txt, lo que desearía es abrir una carpeta seleccionar todos los archivos txt y que la macro lea el contenido y extraiga solo el numero de teléfono y los muestre a todos en una sola hoja de Excel.

1 respuesta

Respuesta
1

¿El formato de cada archivo de texto es igual? Los teléfonos ¿están siempre en la misma posición? ¿Algún otro detalles que nos ayude a ayudarte?

Comentas

Abraham Valencia

Hola, gracias por responderme, la respuesta es si, cada formato de archivo txt es igual, los números de teléfonos se encuentran en la misma posición, el nombre de los archivos tiene un formato de dia mes año hora minuto y segundos, o sea que puede llamarse asi 29112017004600.txt y en su interior dice teléfono: 493982847575

No me queda claro, o sea dentro de un archivo de texto lo único que hay es un solo teléfono ¿es así? De no ser así, danos un poco más de detalles de cada uno de esos archivos.

A la espera

Abraham Valencia

abres el txt y adentro aparece asi, sin espacios entre un renglón y otro.

telefono: xxxxxxxxxxxx <- el numero de teléfono
teléfono opcional: xxxxxxx<- otro numero de teléfono.
comienzo:
fin:
dirección del cliente
calle:
numero:
localidad:
provincia:

Va quedando más claro. Entonces tú lo que requieres es extraer el primer número ¿o también el segundo? Y ¿Nada más? ¿Cierto? Todo en un solo archivo de Excel, en una misma hoja y todos los archivos de texto están en una misma carpeta ¿así es?

Abraham Valencia

Si, y si es posible el segundo número y luego llevarlos a la hoja de Excel yo pensé que no se podía! 

Basado en lo que has mencionado, una macro así te será útil:

Sub ExtraerLineastxt()
Dim Rutadetxts As String, Nombrearchivostxt As String, Datos As String
Dim Filas As Integer, Lineas As Integer
Let Rutadetxts = "D:\FIDE"
Let Nombrearchivostxt = Dir(Rutadetxts & "\*.txt*")
Let Filas = 1
Do While Len(Nombrearchivostxt) > 0
    Open Rutadetxts & "\" & Nombrearchivostxt For Input As #1
        For Lineas = 1 To 2
        Line Input #1, Datos
        Cells(Filas, 1) = Datos
        Let Filas = Filas + 1
        Next
    Let Nombrearchivostxt = Dir()
    Close #1
Loop
End Sub

Claro, repito, eso basado en que todos los archivos están en la misma carpeta y que solo necesitas la línea uno y la línea dos de cada uno de ellos. Ya una vez que los tengas en tu archivo de Excel te será más fácil separa las palabras ("teléfono") de los números pues te quedarán en la misma columna. OJO, no olvides reemplazar en esta línea: "Let Rutadetxts = "D:\FIDE" por tu ruta. 

Comentas

Abraham Valencia

disculpa, no entiendo como hacerlo. Pero déjame mandarte una caja de vino por tu tiempo.

Jajajja, no te preocupes, pero bueno, algún día me invitarás ese vino.

Veamos, vamos por partes:

1- Coloca todos tus archivos de texto en una misma carpeta.

2- Copia la ruta de esa carpeta. Ejemplo: "D:\Personal\MisTxT"

3- Abre un archivo nuevo de Excel, presiona "Alt+F11". Eso abrirá el editor de VBA. En dicho entorno anda al menú "Insertar" y dale click a "Módulo" (a secas, no al que dice "... de clase")

4- En la parte blanca, debajo de "(General)" y "(declaraciones)" pega todo el código que te he enviado.

5- Esta línea:

Let Rutadetxts = "D:\FIDE"

Reemplázala  por la tuya, que en mi ejemplo (punto 2) sería para que quede así:

Let Rutadetxts = "D:\Personal\MisTxT"

6- En la barra de herramientas del editor, en donde aún estás, verás un triangulito inclinado del tipo "play", dale click y se activará la macro y hará lo que esperabas

Espero se haya entendido.

Salu2

Abraham Valencia

Funciona hermoso! Te quiero enviar 1 caja de un vino único de la mejor zona de Argentina.

¿Sera posible que solo seleccione la carpeta principal (que contiene muchas subcarpetas) y obtenga el mismo resultado con los txt?

En realidad de poder hacerlo con sub carpetas, pues se puede, pero hay que rehacer todo ya que es un "poquito" más complicado y, en mi caso, no sé si tenga tiempo para hacerlo pues, como quizá ya sabes, aquí colaboramos "por amor al arte". .. al Excel en realidad. Un abrazo.

Abraham Valencia

ya sabes estoy satisfecho!!! queda reservada esa caja, tu me dices!

Pues de nada :)

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas