Hejsan, vet ej om detta inlägg ska ligga här eller i VB. Men vi provar. Hej, Tackar för svaret Åsa.Problem med en arbetsbok i excel
Har skapat en arbetsbok med 7 kolumner. Dessa kommer att fyllas med diverse data. Den ska sedan sparas som en kolonseparerad fil (CSV). Så långt är allt som det ska. När man ska spara trycker man på en knapp som ligger på excelbladet. Makrokoden ser ut så här:
<Code>
Private Sub sparaCmd_Click()
Dim sString As String
Dim Fnum
Fnum = FreeFile
Fnum2 = FreeFile
ActiveWorkbook.SaveAs Filename:="Nyanmälan-semikolon.skv", FileFormat:=xlCSV, CreateBackup:=False
Open "Nyanmälan-semikolon.skv" For Input As #Fnum
Do While Not EOF(1)
Line Input #Fnum, sString
ListBox1.AddItem (sString)
Loop
Close #Fnum
Open "Nyanmälan.txt" For Output As #Fnum2
For i = 0 To ListBox1.ListCount - 1
Print #Fnum2, ListBox1.List(i)
Next i
Close #Fnum2
ListBox1.Clear
End Sub
</Code>
Problemet jag har är att jag vill kunna ta bort den kolonseparerade filen efter att den har blivit kopierad som en textfil, men eftersom den sparar arbetsboken som en .skv-fil går den ej att ta bort. Den är ju öppen.
Finns det något sätt att spara en kopia av arbetsboken som en .skv-fil för att sedan kunna ta bort den efter att man omvandlat den till en .txt-fil?
Har provas SaveCopyAs men då går det inte att ange filformat. Tror jag.
Tacksam för svar.
JesseSv: Problem med en arbetsbok i excel
varför gå omvägen kring listboxar och csv-fil? Testa att spara direkt från arbetsbladet till en textfil med den här koden:
<code>
Private Sub SaveAsText()
Dim sFilename As String
Dim sRow As String
Dim nCol As Integer
Dim nRow As Integer
Dim nFile As Integer
Const DELIM As String = ";"
sFilename = "C:\Mina dokument\Test\Test.txt"
nFile = FreeFile
Open sFilename For Output As #nFile
With ActiveSheet.UsedRange
For nRow = 1 To .Rows.Count
sRow = ""
For nCol = 1 To .Columns.Count
If sRow <> "" Then sRow = sRow & DELIM
sRow = sRow & CStr(.Cells(nRow, nCol))
Next nCol
Print #nFile, sRow
Next nRow
End With
Close #nFile
End Sub
</code>
/Åsa HSv: Problem med en arbetsbok i excel
Jag är långt ifrån en expert på VB, har just börjat lära mig. Tanken var att man skulle få en kolonseparerad fil på en gång med CSV. Ungefär den koden jag skrev är det jag har gjort förut och det enda sättet jag kände till :)
Ska prova det förslag du kom med.
Edit: Du är värd minst en puss på kinden, det fungerar mycket bra.
Tackar så mycket
Jesse