Autor Tema: Como importar csv a excel drectamente.  (Leído 5715 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Blackbass1

  • Bit
  • Mensajes: 4
  • Reputación: +0/-0
    • Ver Perfil
Como importar csv a excel drectamente.
« en: Julio 08, 2013, 09:22:41 am »
Hola a todos...

He estado buscando por el foro y no he visto... o no he sabido encontrar un ejemplo.

La situación es sencilla...

Fichero de entrada CSV con delimitador (|)... y me interesa pasarlo a un excel... Hasta aqui, lo tengo hecho y funcionando... pero invierte demasiado tiempo ya que podemos estar hablando de 8000...9000 líneas o filas y de unas 50-55 columnas...

La pregunta es...

¿Hay alguna función de excel para hacer la importación directa?...

El sistema que estoy utilizando es el de siempre... pero por cada 1100 registros me tarda 1 minuto... y me gustaría optimizar este proceso ya que al tener que actualizar diariamente carios ficheros... invierte demasiado tiempo.

Espero haber sabido explicarme...

Un saludo y gracias de antemano.

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Como importar csv a excel drectamente.
« Respuesta #1 en: Julio 08, 2013, 09:32:04 am »
Aca hay un articulo que es lo que necesitas, lo unico que no vie es como utilizar un caracter diferente como delimitador.

http://stackoverflow.com/questions/14633691/macro-to-import-csv-file-into-an-excel-non-active-worksheet

Blackbass1

  • Bit
  • Mensajes: 4
  • Reputación: +0/-0
    • Ver Perfil
Re:Como importar csv a excel drectamente.
« Respuesta #2 en: Julio 08, 2013, 09:51:39 am »
Hola...

Gracias por tu rápida respuesta... me lo he de mirar con calma, ademas he de registrarme para ver el código.

Un saludo.

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Como importar csv a excel drectamente.
« Respuesta #3 en: Julio 08, 2013, 01:03:01 pm »
Aca esta el codigo en cuestion. Es raro que pida que te registres..

Código: [Seleccionar]
Sub load_csv()
    Dim fStr As String

    With Application.FileDialog(msoFileDialogFilePicker)
        .Show
        If .SelectedItems.Count = 0 Then
            MsgBox "Cancel Selected"
            Exit Sub
        End If
        'fStr is the file path and name of the file you selected.
        fStr = .SelectedItems(1)
    End With

    With ThisWorkbook.Sheets("Data").QueryTables.Add(Connection:= _
    "TEXT;" & fStr, Destination:=Range("$A$1"))
        .Name = "CAPTURE"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 437
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False

    End With
End Sub

Blackbass1

  • Bit
  • Mensajes: 4
  • Reputación: +0/-0
    • Ver Perfil
Re:Como importar csv a excel drectamente.
« Respuesta #4 en: Julio 09, 2013, 06:45:59 am »
Hola de nuevo...

A ver como lo explico para no quedar como un "inepto"...

En el proyecto, tengo como referencia tanto Micosoft excel 12.0... como micosoft Office Library...

Y me da un error del que no he sabido salir... en el "Show" se queda colgado.

Private Sub Command1_Click()
dim fstr as string
whith Application.FileDialog(msoFileDialogFilePicker)
     .Show
...

Y no se salir de ahí...

Estoy por buscar otras opciones... además el Excel.exe... se queda en ejecución (revisando el Administrador de tareas).

Como podéis imaginaros... se aceptan sugerencias... y muchas gracias.

Un saludo.

Blackbass1

  • Bit
  • Mensajes: 4
  • Reputación: +0/-0
    • Ver Perfil
Re:Como importar csv a excel drectamente.
« Respuesta #5 en: Julio 09, 2013, 08:18:57 am »
Hola de nuevo...

Lamento ser tan pesado.

He encontrado este código que funciona, pero no se donde debo colocar el separador/delimitador "|"

"...
Dim objExcel As Object
Dim objWorkBook As Object
Set objExcel = CreateObject("Excel.Application")
Set objWorkBook = objExcel.Workbooks.Open("C:\ficheroCSV.csv")
objWorkBook.SaveAs "C:\ficheroXLS.xls", 39
objWorkBook.Close False
objExcel.Quit
Set objWorkBook = Nothing
Set objExcel = Nothing
..."

Quiero entender que "objExcel.Workbooks.Open" tiene parametrización, pero despues de probar varias opciones no me crea el XLS teniendo en cuenta dicho separador o delimitador.

Gracias por vuestra paciencia.

Un saludo.