Avatar billede js_delphi Nybegynder
20. september 2005 - 13:31 Der er 13 kommentarer og
2 løsninger

Rette bestemte kolonner i .csv fil?

Goddag,

Jeg genererer en .csv fil fra et andet program.
Värdierne er adskilt vha. semikolon (;).

Eks.:
1.1;2.1;3.1;4.1;5.1;6.1
1.2;2.2;3.2;4.2;5.2;6.2
1.3;2.3;3.3;4.3;5.3;6.3
1.4;2.4;3.4;4.4;5.4;6.4

Hvis jeg importerer og adskiller filen i Excel ser det ca. sädan ud:

Eks.:
1.1  2.1  3.1  4.1  5.1  6.1
1.2  2.2  3.2  4.2  5.2  6.2
1.3  2.3  3.3  4.3  5.3  6.3
1.4  2.4  3.4  4.4  5.4  6.4

Her kommer spörgsmälet:
Jeg önsker at dividere samtlige värdier i spalte 2 og 3 med 10.
Det skulle gerne komme til at se sädan ud:

Eks.:
1.1  0.21  0.31  4.1  5.1  6.1
1.2  0.22  0.32  4.2  5.2  6.2
1.3  0.23  0.33  4.3  5.3  6.3
1.4  0.24  0.34  4.4  5.4  6.4

Problemet er, at jeg skal importere filen igen som .csv i mit andet program, og det er her jeg konstant fär problemer!

När jeg er färdig med at rette filen til, SKAL den se sädan ud igen:

Eks.:
1.1;0.21;0.31;4.1;5.1;6.1
1.2;0.22;0.32;4.2;5.2;6.2
1.3;0.23;0.33;4.3;5.3;6.3
1.4;0.24;0.34;4.4;5.4;6.4

Hvordan klarer man dette?
Pä forhänd tak for hjälpen.
Avatar billede stewen Praktikant
20. september 2005 - 13:50 #1
importer din fil - ret dine data til (sørg for at det er værdier ikke formler!) så kan du bruge nedenstående til at lave din csv...

Sub csvdk()

If Range("A1") <> "" Then
 
    Range("A1:F1").Select
        Range(Selection, Selection.End(xlDown)).Select
                EksportAsCSVDK "C:\DIT_FILNAVN.csv", Selection
    Range("A1").Select

Else
End If


End Sub

Sub EksportAsCSVDK(strFileName As String, rngOmr As Range)
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

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

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

Next
Close #lFno

End Sub
Avatar billede js_delphi Nybegynder
20. september 2005 - 14:14 #2
Tak for ovenstäende kode. Jeg gär ud fra, det er VB, hvilket jeg kender meget lidt til!
Kan man ikke konvertere direkte, uden brug af kode?
Avatar billede oyejo Nybegynder
20. september 2005 - 14:30 #3
1) åpen csv-filen i excel
2) skriv inn tallet 10 i en tom celle
3) merk cellen og trykk ctrl+c ( kopier)
4) merk de kolonner som skal divideres med 0
5) velg -REDIGER -> LIM INN UTVALG - kryss av for divider og ok
Avatar billede oyejo Nybegynder
20. september 2005 - 14:31 #4
4) merk de kolonner som skal divideres med 10 :-)
Avatar billede oyejo Nybegynder
20. september 2005 - 14:33 #5
Dette er norsk utgave,
på engelsk Past Spesial
Du finner nok ut av den danske versjonen
Avatar billede js_delphi Nybegynder
20. september 2005 - 14:52 #6
Det var sgu en smart og hurtig mäde!
Mit problem er dog, hvordan jeg gemmer filen som .csv igen.
Har du et forslag?
Avatar billede stewen Praktikant
20. september 2005 - 14:55 #7
vælg gem som og vælg formatet *.csv
Avatar billede oyejo Nybegynder
20. september 2005 - 14:58 #8
Velg Fil -> lagre som
her finner du et alternativ som heter Csv semikolondelt
Avatar billede oyejo Nybegynder
20. september 2005 - 14:59 #9
åhhh..
unnskyld stewen, så ikke ditt svar :-)
Avatar billede js_delphi Nybegynder
20. september 2005 - 16:12 #10
Problemet er, när jeg gemmer som csv, kan jeg ikke bestemme med hvilket tegn kolonnerne skal adskilles. De adskilles automatisk med komma (,).
Det har jeg nu gjort, og derefter sat Editor til at erstatte samtlige kommaer (,) med semikolon (;)!

Et svar fra jer begge, og I deler point.

Tak for hjälpen!
Avatar billede oyejo Nybegynder
20. september 2005 - 16:24 #11
i excel 2003 tror jeg det finnes flere valg for å lagre som csv
det ene skal være som semikolonseparert.
Hvis ikke, prøv å lagre som txt-fil. du kan jo endre filendelsen til csv. i ettertid
Avatar billede stewen Praktikant
20. september 2005 - 18:36 #12
Alternativet er jo at anvende VBA - men selvfølgelig kan det klares uden

hermed et svar
Avatar billede oyejo Nybegynder
26. september 2005 - 10:37 #13
Takker for points
men.... fant du ut av det..
..det er helt sikkert mulig å ordne på et vis.

Vi kan ikke gi oss så lett :-)
Avatar billede js_delphi Nybegynder
26. september 2005 - 11:12 #14
Jeg gemte filen som csv. Herved blev kolonnerne adskilt med komma (,).
Derefter äbnede jeg filen i Editor, og lavede en sög og erstat (sög komma og erstat med semikolon).
Jeg havde et enkeltstäende problem, som nu er löst, og derfor behöver jeg ikke en smartere mäde at klare det pä i fremtiden...

Mvh.
js_delphi
Avatar billede oyejo Nybegynder
26. september 2005 - 12:04 #15
OK
jeg benytter excel 2003 under windows XP,
der er det mulig å lagre en excelbok som kun inneholder 1 ark,
..til formatet: semikolondelt csv fil.
har like testet, :-)
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel