Visual Basic - MANIPULAR EXCEL DESDE VISUAL BASIC

Life is soft - evento anual de software empresarial
 
Vista:

MANIPULAR EXCEL DESDE VISUAL BASIC

Publicado por Juan Luis Ardia (1 intervención) el 22/05/2014 21:08:13
Buenas mi duda es la siguiente:

Tengo una hoja de datos en excel de gran tamaño aprox 1 GB que contienen informacion alfanumerica, necesito crear un programa en visual basic, capaz de hacer consultas al archivo de excel, filtrar columas, realizar operaciones basicas con los resultadosde filtrado, sumas, restas y otros y general un reporte en excel.

Alguien que me de una mano?...

Pdata.:
No me gustaria usar macros debido a que mensualmente trabajo con otras hojas de excel con las mismas columnas, pero diferentes datos y en varias ocasiones se me a colgado el Excel por trabajar con archivos tan grandes.


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

MANIPULAR EXCEL DESDE VISUAL BASIC

Publicado por Roberto (11 intervenciones) el 23/05/2014 20:48:56
Hola:

Tanto en VB como en VBA sería similar.

Si lo quieres hacer desde VB, añade en tu proyecto la referencia a Microsoft Excel 11.00 Object Library (puede ser la 10, la 11, etc... en función del Office que tengas en tu maquina)

Y luego simplemente puedes usar el objero Excel.

Por ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Dim E As Excel.Application
Dim Libro As Excel.Workbook
Dim Hoja As Excel.Worksheet
 
Dim Fila As Integer
Dim Col As Integer
 
Dim NumFilas As Integer
Dim NumCols As Integer
 
    Set E = CreateObject("Excel.Application")
    Set Libro = E.Workbooks.Open(Ruta_del_fichero_excel, , True) 'el 3º campo le indica que se abra en solo lectura
    Set Hoja = Libro.Worksheets("Hoja1") 'aqui el nombre que sea.. o numericamente
 
    NumFilas = Hoja.UsedRange.Rows.Count     'Asi calculamos el nº de filas que tiene
    NumCols = Hoja.UsedRange.Columns.Count  'Asi calculamos el nº de columnas que tiene
 
    For Fila = 1 To NumFilas
        For Col = 1 To NumCols
            dato = Hoja.Cells(Fila, Col)
            ....'aqui hacemos lo que queramos con los datos
        Next
    Next
 
    Set Hoja = Nothing

Todo esto se haría sin que se viera el documento ya que el objeto Excel está invisible.
HAy que tener cuidado de que no falle y se quede en ejecución el Excel y que lo tengamos que matar con el administrador de tareas.

Bueno.. espero que quede claro el código
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