Avatar billede anitals Nybegynder
23. april 2004 - 12:51 Der er 10 kommentarer

Gem excel-fil som csv-fil separeret med komma

Jeg har forsøgt at importere en tekstfil og en csv-fil i excel 2000. I Guiden tekstimport, har jeg valgt komma som afgrænser og anførselstegn som tekstkvalifikator. Filen er gemt i excel som csv, men komma er erstattet af semikolon:

Filnavn: *.csv
Filtype: csv-semikolonsepareret
(I filtype har jeg kun mulighed for at vælge csv semikolonsepareret og MS dos + Macintosh, mangler jeg muligheder her??)

Jeg har rettet listeseparator til komma i International.

Jeg benytter windows 2000, men har mulighed for at låne en PC’er med XP hvis det kan hjælpe??

Filen skal importeres i en anden database i følgende format: ”felt1”,”felt2”,”felt3”,””,””,””  o.s.v.

Hvordan gemmer jeg filen i excel så den får ovenstående format??
Avatar billede jkrons Professor
23. april 2004 - 12:58 #1
En mulighed erv at lave en makro, der gemmer din mapep som csv fil. Når du gemmer via gem som, bruges altid semikolon som separator, når du bruger en makro, bruges altid komma!!

fx denne eller en lignende kode:

Sub csv()
ActiveWorkbook.SaveAs Filename:= _
        "C:\Mappe1.csv", FileFormat:= _
        xlCSV, CreateBackup:=False
End Sub
Avatar billede anitals Nybegynder
23. april 2004 - 13:53 #2
Kan jeg ikke gemme filen i ovenstående format uden at have kenskab til VBA?? Hvordan gemmer jeg filen med en makro??
Avatar billede palle_ib Nybegynder
23. april 2004 - 18:56 #3
Er det rigtig forstået at det eneste du skal bruge excel til i denne forbindelse er for at lave semikolon om til comma?
Har du overvejet at åbne csv filen i Notepad (Notesblok) og lave en søg erstat på semikolon til comma?
En hurtig løsning som er til at forstå, men hvis det er noget der skal gøres dagligt vil jeg foreslå VBA.
Avatar billede anitals Nybegynder
23. april 2004 - 19:57 #4
Nej, jeg skal bruge en fil med komma som separator og indholdet skal være i anførselstegn, derfor kan jeg ikke bruge en csv-fil som laver både komma og anførselstegn om til semikolon. Jeg kan ikke se idéen i at bruge søg og erstat i denne sammenhæng. Formatet jeg skal bruge er: "indhold","indhold","","","" o.s.v. Kan det kun gøres med VBA??
Avatar billede bak Forsker
23. april 2004 - 20:13 #5
Nej, ikke uden VBA
Denne makro eksporter det sammenhængende område af regnearket som du står i når den køres.

Sub EksportAsCSV()
Const Delim    As String = ","  'afgrænser (delimiter)
Dim y          As Long          'tæller
Dim x          As Long          'tæller
Dim strTemp    As String        'streng til de enkelte rækker
Dim lRows      As Long          'antal rækker
Dim lCols      As Long          'antal kolonner
Dim lFno      As Long          'fil nummer
Dim CSVFilename As String
Dim rngOmr As Range

Set rngOmr = Application.InputBox("Marker området der skal eksporteres :", "Marker Område", , , , , , 8)
CSVFilename = Application.GetSaveAsFilename(fileFilter:="CSV Files (*.csv), *.csv")
If CSVFilename = "False" Then Exit Sub

lFno = FreeFile
lRows = rngOmr.Rows.Count
lCols = rngOmr.Columns.Count
Open CSVFilename For Output As #lFno

For x = 1 To lRows
    strTemp = ""
    For y = 1 To lCols
        strTemp = strTemp & &chr(34) & rngOmr(x, y).Text & chr(34)
        If y < lCols Then
            strTemp = strTemp & Delim
        Else
            Print #lFno, strTemp
        End If
    Next

Next
Close #lFno

End Sub
Avatar billede anitals Nybegynder
26. april 2004 - 10:47 #6
Når makroen køres melder VBA: Compile error - syntax error til følgende:
strTemp = strTemp & &chr(34) & rngOmr(x, y).Text & chr(34)

Kan du hjælpe??
Avatar billede bak Forsker
26. april 2004 - 11:06 #7
linien ændres til:
strTemp = strTemp & Chr(34) & rngOmr(x, y).Text & Chr(34)

der havde sneget sig et & tegn for meget ind
Avatar billede anitals Nybegynder
26. april 2004 - 14:17 #8
Tak bak, det hjalp en hel del:)
Hvordan tildeler jeg de 30 point til dig?? (muligheden for at afvise eller acceptere forsvandt da jeg afviste det første svar)
Avatar billede bak Forsker
26. april 2004 - 15:56 #9
nååe, jeg smider lige et svar, så du kan give point :-)
Avatar billede janborup Praktikant
07. juli 2008 - 16:11 #10
Virker super for mig og men drillede lidt i Excel 2007.

Sådan installeres det i Excel 2007.
- Klik Office-ikon / Excel-indstillinger / Sikkerhedscenter / Indstillinger for sikkerhedscenter
- Indstillinger for makro, Klik: Aktiver alle makroer
- Eksternt indhold, Klik: Aktiver alle dataforbindelser
- OK
- OK
Tryk: Alt+F11
- Dobelt-Klik på ThisWorkBook
- Sæt Bakskode ind.
<code>
Sub EksportAsCSV()
Const Delim    As String = ","  'afgrænser (delimiter)
Dim y          As Long          'tæller
Dim x          As Long          'tæller
Dim strTemp    As String        'streng til de enkelte rækker
Dim lRows      As Long          'antal rækker
Dim lCols      As Long          'antal kolonner
Dim lFno      As Long          'fil nummer
Dim CSVFilename As String
Dim rngOmr As Range

Set rngOmr = Application.InputBox("Marker området der skal eksporteres :", "Marker Område", , , , , , 8)
CSVFilename = Application.GetSaveAsFilename(fileFilter:="CSV Files (*.csv), *.csv")
If CSVFilename = "False" Then Exit Sub

lFno = FreeFile
lRows = rngOmr.Rows.Count
lCols = rngOmr.Columns.Count
Open CSVFilename For Output As #lFno

For x = 1 To lRows
    strTemp = ""
    For y = 1 To lCols
        strTemp = strTemp & Chr(34) & rngOmr(x, y).Text & Chr(34)
        If y < lCols Then
            strTemp = strTemp & Delim
        Else
            Print #lFno, strTemp
        End If
    Next

Next
Close #lFno

End Sub
</code>

HUSK at gemme som:
- Excel-projektmappe med Aktiverede-makroer.
- Gem filen som DitProjekt.xlsm

Tryk: Alt+F8 og afspil ThisWorkbook.EksportAsCSV
- Marker det område der skal eksporteres
- I Gem som vælges nyt navn: DitProjekt.csv

Det var ordne for mig.... FINT POST..
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