Visual Basic - Abrir los archivos de tipo excel de una carpeta y contarlos.

Life is soft - evento anual de software empresarial
 
Vista:

Abrir los archivos de tipo excel de una carpeta y contarlos.

Publicado por Alvaro (19 intervenciones) el 29/05/2015 09:44:32
Muy buenas!

Estoy creando un programa que abra todos los archivos de tipo excel de una carpeta y tambien los cuente.
Si no es excel simplemente debe ignorarlo.
Estoy probando con un for each
For Each file As Excel.Application In My.Computer.FileSystem.GetFiles("\direccion")
''codigo
Next

Pero no me funciona.

¿Alguna sugerencia o ayuda?

Muchas gracias.
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

Abrir los archivos de tipo excel de una carpeta y contarlos.

Publicado por Andres Leonardo (1798 intervenciones) el 29/05/2015 17:43:48
Intenta con este
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Public fs As New FileSystemObject
Public temporal As Folder
Public Archivo As File
 
 
Sub ContarArchivosCarpeta()
On Error GoTo Eterror:
dim Nombre as string
Set temporal = fs.GetFolder(App.Path & "\XLS")     'o la ruta donde cesees
        C = 1
        For Each Archivo In temporal.Files
            Nombre = Archivo
           if archi.type = "Hoja de cálculo de Microsoft Excel 97-2003" then
            C = C + 1
           end if
 
        Next Archivo
    msgbox "Existen " & c & " Archivos de Excel en la carpeta"
Eterror:
    'MsgBox Err.Description
    XError = True
 
End Sub

Espero te ayude
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
sin imagen de perfil

Abrir los archivos de tipo excel de una carpeta y contarlos.

Publicado por Khristtian (54 intervenciones) el 29/05/2015 17:52:22
Si en el PC a ejecutar tu codigo no esta instalada ninguna version de office.... ?

Funcionará esta linea ??

if archi.type = "Hoja de cálculo de Microsoft Excel 97-2003" then
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

Abrir los archivos de tipo excel de una carpeta y contarlos.

Publicado por Andres Leonardo (1798 intervenciones) el 29/05/2015 18:30:07
Pues habria que probar ya que esta usando scripting file ... otra cosa que podrias hacer es si no sacas el tipo...
ver la extencion si es xls o xlsx y contarlo .... en todo caso podrias probar pero el codigo funcionara sin problemas
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
sin imagen de perfil

Abrir los archivos de tipo excel de una carpeta y contarlos.

Publicado por Khristian (54 intervenciones) el 29/05/2015 19:26:33
A eso queria llegar.

Debe contar basado en las extensiones de archivo.
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

Abrir los archivos de tipo excel de una carpeta y contarlos.

Publicado por Andres Leonardo (1798 intervenciones) el 29/05/2015 19:38:04
Podrias usar esta Linea asi pero recuerda que no solo excel es XLS

Esta XLS , XLSX, XLSM ... en fin ... espero te sirva.


if mid(archivo.Name, len(archivo.Name) - 3, 3) = "XLS" then

Archivo . name te da el nombre asi ---- NombreArchivo.ext

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
sin imagen de perfil

Abrir los archivos de tipo excel de una carpeta y contarlos.

Publicado por Khristian (54 intervenciones) el 29/05/2015 21:59:18
Y no todas las extensiones son de 3 caracteres.

Se deben utilizar las librerías correspondientes al manejo de archivo para extraer la extensión de un archivo.
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

Abrir los archivos de tipo excel de una carpeta y contarlos.

Publicado por Andres Leonardo (1798 intervenciones) el 29/05/2015 22:08:03
Khristian
Muy valida tu apreciacion la verdad yo tambien me lo planteaba de esa manera,
nos podrias indicar cual seria la libreria ?? por que con fs revise y ninguno me daba la ext

En todo caso con lo indicado podria avanzar si no es tan avanzado .. a veces lo perfecto es enemigo de lo bueno

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
sin imagen de perfil

Abrir los archivos de tipo excel de una carpeta y contarlos.

Publicado por Khristian (54 intervenciones) el 30/05/2015 01:16:40
Lo que no es perfecto. .. debe ser funcional.
puedes sacar rápido un código, pero no olvidemos detalles, como el de evaluar extensiones de 3 caracteres cuando no siempre son de 3.
yo hubiera determinado el largo del nombre del archivo, luego localizo la posición del punto, y de ahí extraigo los caracteres desde la posición del punto +1 hasta el largo de caracteres del nombre. Obviamente con excepciones para cuando un archivo no tiene extensión.

Respecto al código:
1
2
3
4
5
6
For Each foundFile As String In _
My.Computer.FileSystem.GetFiles("C:\TestDir")
    Dim check As String = _
    System.IO.Path.GetExtension(foundFile)
    MsgBox("The file extension is " & check)
Next

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

Abrir los archivos de tipo excel de una carpeta y contarlos.

Publicado por Facundo (58 intervenciones) el 02/06/2015 04:35:28
Primero: listá todas las extensiones asociadas a Excel (son un montón)
Segundo: en un form colocá
- drivelistbox
- dirlistbox
- filelistbox
- un label
Tercero (lo más dificil):
- escribí el codigo para que en el filelistbox aparezcan los archivos de la carpeta seleccionada en el dirlistbox
1
2
3
4
5
6
7
sub drive1_change
on error resume next 'por si elegís alguna unidad no disponible
dir1.path = drive1.drive
end sub
sub dir1_change ()
File1.Path = Dir1.Path
end sub
Cuarto (el truco):
en las propiedades del filelistbox buscá la que se llama PATTERN: es el "filtro" del filelistbox.
ahí ingresá las extensiones asociadas a Excel (o las que vos quieras), separadas por el caracter ";" (punto y coma)
ejemplo "*.txt;*.pdf" (escribílo sin las comillas)
Quinto (el gran final):
agregá en el sub dir_change () la siguiente línea:
1
Label1.Caption = "Cuenta de archivos: " + Str(File1.ListCount)
y mandale F5.
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