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?
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
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
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 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
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
Synes godt om
Ny brugerNybegynder
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.