Visual Basic - EXTRAER DATOS DE VARIOS ARCHIVOS DE TEXTO

Life is soft - evento anual de software empresarial
 
Vista:

EXTRAER DATOS DE VARIOS ARCHIVOS DE TEXTO

Publicado por Guillermo (2 intervenciones) el 16/11/2018 05:14:22
Hola buen dia

Soy nuevo en esto de la programación y estoy elaborando una maro en Excel que extrae información de un archivo de texto y lo regresa en la celda activa de la hoja de Excel pero quisiera hacer este proceso para varios archivos, investigando vi que para la función GetOpenFilename se puede agregar el "multiselect" y de esa manera me permite seleccionar mas de un archivo, mas sin embargo no logro realizar el proceso para mas de un archivo, el codigo que tego para un solo archivo seria el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub UserForm_Click()
Dim archivo, abrir As Integer
Dim almacenar As String
 
archivo = Application.GetOpenFilename("Archivos TXT (*.txt), *.txt")
 
abrir = FreeFile: Open archivo For Input As #abrir
almacenar = Input(LOF(abrir), #abrir)
Close #abrir
 
ActiveCell = almacenar
 
End Sub


¿Se podria combinar mi código con el que anexo a continuación?


1
2
3
4
5
6
7
8
9
10
11
Private Sub UserForm_Click()
mifila = Application.GetOpenFilename("Archivos Excel (*.xml*), *.xml*", , , , True)
fila = 2
 
For i = LBound(mifila) To UBound(mifila)
 
Cells(fila, 1) = mifila(i)
fila = fila + 1
 
Next i
End Sub

(este código solo devuelve la ruta del archivo mas no la informacion del mismo)


Agradezco su amable apoyo y espero me puedan apoyar, Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

EXTRAER DATOS DE VARIOS ARCHIVOS DE TEXTO

Publicado por Andres Leonardo (1798 intervenciones) el 16/11/2018 15:17:21
que contenido tienen los archiovos

puedes hacer algo para leer los archivos de una carpeta con los Filesystem
y si cumplen con lo que necesitas obtener el dato requerido

ese dato viene despues de algun caracter .. siempre en una linea espeficica

puedes dar mas detalles
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

EXTRAER DATOS DE VARIOS ARCHIVOS DE TEXTO

Publicado por Guillermo (2 intervenciones) el 17/11/2018 03:11:11
Hola buenas noches, muchas gracias por tu respuesta

De hecho cada archivo de texto solo contiene un nombre, es por ello que aplique el LOF para que ingresara en la celda activa todo el contenido dado que solo es un nombre por archivo... En teoría el segundo código que anexe hace lo mismo pero solo me arroja la ruta de los archivos y no he logrado que me arroje el contenido de los mismos

¿Los Filesystem se pueden ingresar al codigo que tengo para leer multiples archivos de texto? y podrías explicarme de que manera funciona

Agradezco tu apoyo , Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

EXTRAER DATOS DE VARIOS ARCHIVOS DE TEXTO

Publicado por Andres Leonardo (1798 intervenciones) el 19/11/2018 15:04:32
Adjunto lo que necesitas (debes activar la referencia microsoft runtime scripting)

te adjunto un ejemplo en el zip hay un archvo y la carpeta .. pon tus textos (Una copia obiamente) y luego abre el excel presiona control + Q y luego presiona el boton .. el te va a leer la carpeta y te va dar el resultado de cada archivo con su no,mre

Cualquier duda me avisas


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub ArchivoCarpeta()
On Error Resume Next
CC = 0
     'grabalog "Entro Al Proceso : "
 
 p = 7
 q = 8
Set temporal = fs.GetFolder(ThisWorkbook.Path & "\Files\") 'Suponiendo que estan dentro de una carpeta donde esta tu aplicacion
'MsgBox temporal.Files.Count
For Each Archivo In temporal.Files  ' por cada archivo
                            Open Archivo For Input As p
                               Texto = Input(LOF(p), p)
 
                                MsgBox "Dentro del Archivo  " & Archivo.ShortName & " Tiene el texto " & Texto
 
                             Close p
                       ' Kill Archivo ' Si deseas borrar el archivo despues de leer lo.
Next
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar