Visual Basic para Aplicaciones - acceso a datos en fichero externo

Life is soft - evento anual de software empresarial
 
Vista:

acceso a datos en fichero externo

Publicado por Cris (4 intervenciones) el 18/05/2006 09:07:01
Hola,

tengo un programa que usa hojas de excel. El problema que se me plantea ahora es que uno de los ficheros está en formato .csv.

Yo no conozco este formato, pero al abrirlo directamente (doble clic sobre el icono) se abre excel y el fichero correctamente. Pero si lo abro desde mi programa en Visual Basic se pierde el formato de dicho fichero, apareciendo los datos desordenados.

Necesito coger datos de este fichero para llevarlos a otro xls ¿qué puedo hacer?

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

RE:acceso a datos en fichero externo

Publicado por Tonijua (6 intervenciones) el 21/05/2006 01:22:56
En resumen, Habre el archivo, lees linea por linea, extraes lo necesari y cierras
analisa es codigo ya que estoy un poco apurado,, Saludos

NomHoja = Sheets.Application.ActiveSheet.Name
FiletoOpen = Application.GetOpenFilename("Archivos de Texto (*.cvs),*.cvs")
If False = FiletoOpen Then Exit Sub
Open FiletoOpen For Input As #1
Do While Not EOF(1)
Line Input #1, Texto
Col = 2
Cont = 1
Inicio = 1
Do While Not Cont = Len(Texto)
If Texto = "" Then
Fil = Fil - 1
If Fil = 0 Then Fil = 1
Exit Do
End If
Caracter = Mid(Texto, Cont, 1)
If Caracter = Chr$(9) Or Caracter = "|" Then
Corte = Cont - 1
ASX = Corte - Inicio + 1
Cells(Fil, Col) = Mid(Texto, Inicio, ASX)
Cells(Fil, 1) = (Fil - 2)
' Comprobacionde Hoja - Verificacion de fecha
If NomHoja = "Compras-BO" Then
If Col = 7 And Fil > 2 Then Cells(Fil, Col) = Format(Mid(Texto, Inicio, ASX), "dd.mm.yyyy")
End If
If NomHoja = "Boletos-BO" Then
If Col = 5 And Fil > 2 Then Cells(Fil, Col) = Format(Mid(Texto, Inicio, ASX), "dd.mm.yyyy")
End If
If NomHoja = "Importaciones-BO" Then
If Col = 4 And Fil > 2 Then Cells(Fil, Col) = Format(Mid(Texto, Inicio, ASX), "dd.mm.yyyy")
End If

Inicio = Corte + 2
Col = Col + 1
End If
Cont = Cont + 1
Loop
Fil = Fil + 1
Loop
Close #1
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