04. oktober 2009 - 09:41Der er
13 kommentarer og 1 løsning
konverter til en fil uden koder.
Hej experter
Jeg har fået en opgave, der lyder som følger: en txt fil skal hentes ind i excel, bearbejdes og derefter exporteres til en fil helt uden koder. Cellernes inhold skal stå i forlængelse af hinanden uden skilletegn og mellemrum. Hver række skal udgøre en linie i filen. Gemmer jeg filen som en txt fil, så optræder der mellemrum mellem de enkelte cellers indhold. Tilsvarende gælder en csv fil, her er der blot et semikolon der adskiller de enkelte cellers indhold.
Er der en løsning?
ps. Det drejer sig om et ark med mange rækker, og extention skal være txt.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Open filsti + "eksport.txt" For Output As #1 For ræk = 2 To antalRækker linie = "" For kol = 1 To antalKolonner linie = linie + CStr(Cells(ræk, kol)) Next kol
Print #1, linie linie = "" Next ræk Close #1
MsgBox ("Eksport afsluttet") End Sub
Rem sådan ser output-filen ud 810000A2501-07-2009270288AA123450140 810001A2602-07-2009270289AA123550241 810002A2703-07-2009270290AA123650342 810003A2804-07-2009270291AA123750443 810004A2905-07-2009270292AA123850544 810005A3006-07-2009270293AA123950645 810006A3107-07-2009270294AA124050746
Det ser godt ud. Jeg overså desværre en detalje. I outputfilen skal den enkelte række opsplittes i 2, således at der kommer et linieskift efter leverandør, således at type/st. og antal komemr på en ny linie. Linieskiftet skal således komme efter kolonne 5. Kan du bygge det ind i koden vil det være helt perfekt.
Open filsti + "eksport.txt" For Output As #1 For ræk = 2 To antalRækker linie = "" For kol = 1 To antalKolonner linie = linie + CStr(Cells(ræk, kol)) If kol = 5 Then Print #1, linie linie = "" End If Next kol
Print #1, linie linie = "" Next ræk Close #1
MsgBox ("Eksport afsluttet") End Sub
Rem sådan ser output-filen ud 810000A2501-07-2009270288AA1234 50140 810001A2602-07-2009270289AA1235 50241 810002A2703-07-2009270290AA1236 50342 810003A2804-07-2009270291AA1237 50443 810004A2905-07-2009270292AA1238 50544 810005A3006-07-2009270293AA1239 50645 810006A3107-07-2009270294AA1240 50746
Et tillægsspørgsmål: hvis jeg vil have formateret felterne inden de skrives i filen, er det så hensigtsmæssigt at gøre det, som en del af din kode, eller skal jeg gøre det før din kode afvikles? F.eks. skrives datoen: 01-07-2009, men i min resutatsfil skal den stå således: 01072009, og antal skal have 3 nuller foran tallet.
Open filsti + "eksport.txt" For Output As #1 For ræk = 2 To antalRækker linie = "" For kol = 1 To antalKolonner Rem dato-kolonne If kol = 3 Then linie = linie + Format(Cells(ræk, kol), "ddmmyyyy") Else Rem antal-kolonne If kol = 7 Then linie = linie + Format(Cells(ræk, kol), "00#") Else linie = linie + CStr(Cells(ræk, kol)) End If End If
If kol = 5 Then Print #1, linie linie = "" End If Next kol
Print #1, linie linie = "" Next ræk Close #1
MsgBox ("Eksport afsluttet") End Sub
Rem sådan ser output-filen ud (antal rettet i 3 øverste) 810000 A2501072009270288AA1234 501004 810001 A2602072009270289AA1235 502041 810002 A2703072009270290AA1236 503142 810003 A2804072009270291AA1237 504043 810004 A2905072009270292AA1238 505044 810005 A3006072009270293AA1239 506045 810006 A3107072009270294AA1240 507046
Hej Supertekst - Det ser rigtigt godt ud. Jeg har dog stadig nogle småting, som jeg skal have bygget ind i koden. Kan vi fortsætte her eller skal jeg oprette et nyt spørgsmål?
ok, men jeg tænkte nu ikke på points, mere på at bive i tråden. Men anyway, så vil jeg blot sige tusinde tak for hjælpen, og håber så, at du vil fortsætte i det nye spørgsmål. :0))
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.