Avatar billede mmbrade Nybegynder
10. januar 2007 - 08:17 Der er 7 kommentarer

Indlæsning CSV-filer i Excel 2003

I Excel 2000 kan CSV filer, fx. vedhæftede i mail, indlæses direkte og korrekt i Excel. I Excel 2003 står alle data kommaseparerede i venstre kolonne. At rette i Listeseparator under Internationale og sproglige indstillinger løser ikke problemet. Da jeg får mange CSV-filer, som skal læses ind, ønsker jeg ikke at skulle gemme CSV-filen på disken først. Har du en løsning?
Avatar billede bufferzone Praktikant
10. januar 2007 - 08:34 #1
Prøv i stedet at mporterer filen, her får du mulighed for at vælge separator eller definerer en fast bredde. Her kan du ofte relativt let redde opstillingen af CVS og andre formater
Avatar billede bufferzone Praktikant
10. januar 2007 - 08:35 #2
mporterer  = importerer (findes hvis jeg husker rigtigt i filer - importer)
Avatar billede mmbrade Nybegynder
10. januar 2007 - 08:38 #3
Det kræver at jeg gemmer filen på disken og det vil jeg gerne undgå, jeg ønsker at åbne filen fra Outlook.
Avatar billede bufferzone Praktikant
10. januar 2007 - 10:12 #4
Når du åbner filer i outlook, så gemmes den på disken i temp og jeg tror ikke du har anden mulighed. Du skal ind og have fat i outlooks funktionalitet for at behandle filen og det kan du, mig bekendt kun fra disken
Avatar billede supertekst Ekspert
11. januar 2007 - 20:41 #5
En mulighed:

Rem Koden indsættes i ThisWorkbook i en ExcelFil
Rem Reference til Microsoft Outlook 11.0 Object Library sættes i VBA - Tools - References
Rem =====================================================================================
Sub workbook_activate()
Dim mailApp, Namespace, indbakke, m, vf
    Set mailApp = CreateObject("Outlook.Application")
    Set Namespace = mailApp.GetNamespace("MAPI")
    Set indbakke = Namespace.GetDefaultFolder(olFolderInbox)

Rem Gennemløber indbakken
    If indbakke.Items.Count > 0 Then
        For m = 1 To indbakke.Items.Count

Rem Hver mail test for vedhæftet fil - p.t. behandler kun vedhæftet fil
                If indbakke.Items(m).Attachments.Count > 0 Then

Rem henter filnavnet / Gem temp.
                    vf = LCase(indbakke.Items(m).Attachments(1).Filename)
                    indbakke.Items(m).Attachments(1).SaveAsFile "c:\" + vf
                   
Rem Indeholder filnavnet .csv og (mailen stadig er ulæst... så...) annulleret p.t.
                    If InStr(vf, ".csv") > 0 Then 'And indbakke.Items(m).UnRead = True Then
                        importerCSV (vf)

Rem marker som læst
                        indbakke.Items(m).UnRead = False
Rem Slet templagring
                        Kill "c:\" + vf
                    End If
                End If
        Next m
    End If
End Sub
Private Sub importerCSV(filNavn)
    Range("A1").Select
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;C:\" + filNavn, _
        Destination:=Range("A1"))
'        .Name = "t4"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
Avatar billede mmbrade Nybegynder
24. januar 2007 - 11:10 #6
Undskyld det sene svar. Jeg ved ikke, hvor og hvordan jeg skal indsætte koden. Kan du også hjælpe med det? vh MMbrade
Avatar billede supertekst Ekspert
24. januar 2007 - 13:38 #7
Ok - kode indsættes som anført:

Rem Koden indsættes i ThisWorkbook i en ExcelFil
Rem Reference til Microsoft Outlook 11.0 Object Library sættes i VBA - Tools - References

Åbn Excel - tryk Alt+F11 - VBA åbnes - aktiver ThisWorkbook - indsæt koden
Ref til OutLook - VBA - Tools - References - find Microsoft OutLook 11.0 (2003) eller 10.0 (Xp) - sæt flueben - OK
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester