XLSX Exporteren naar CSV met pipe

Status
Niet open voor verdere reacties.

Mieketie

Gebruiker
Lid geworden
16 sep 2006
Berichten
92
Beste specialisten,

Laat me eerlijk zijn, ik heb eens in de zoveel jaar eens een VBA-scriptje nodig en dat lukt meestal wel dankzij de zoekfunctie van dit forum. Echter deze vind ik niet.

Situatie: ik heb een xlsx bestand met meerdere kolommen. Door invoeging van de juiste formules bekom ik in kolom A en B de informatie die ik moet exporteren naar een CSV of een TXT bestand.
Probleem: het CSV/TXT-bestand moet absoluut 'Pipe' delimited zijn. Mijn regio-lijstscheidingsteken staat op punt-komma en dat wil ik graag zo houden omdat ik dat ook gewoon ben voor mijn excel formules.

Zou iemand van jullie me even op weg kunnen helpen om een VBA script te schrijven waarmee ik de kolommen A en B van een xlsx bestand kan exporteren naar TXT/CSV met een pipe scheidingsteken.

Alvast heel erg bedankt
 

Bijlagen

  • Helpmij - Pipe sep CSV.xlsx
    8,8 KB · Weergaven: 31
Probeer dit eens.
In de map waar je document staat wordt dan een .txt bestand gemaakt met dezelfde naam als je document:
Bekijk bijlage 356346

Nou moe, ik had inmiddels op het www al wat andere mogelijkheden bestudeerd maar die scripts omvatten het 24-dubbele dan wat jij me hier voorstelt en het werkt dan ook nog (waaraan ik niet had getwijfeld natuurlijk).
Beste Edmoor, ik ben u Tera Honourable dankbaar hiervoor.
Weeral wat tijd en muisklikken uitgespaard op een dag.

Alvast een fijne coronavrije dag (en toekomst) gewenst. :thumb:
 
Het kan nog een regeltje korter, maar zo werkt het wel :)
Code:
Sub CommandButton1_Click()
    Open Replace(ThisWorkbook.FullName, ".xlsm", ".txt") For Output As #1
    For i = 2 To Range("A2").CurrentRegion.Rows.Count + 1
        Print #1, Cells(i, 1) & "|" & Cells(i, 2)
    Next i
    Close #1
End Sub
 
Laatst bewerkt:
Code:
Sub CommandButton1_Click()
  Blad1.UsedRange.Copy
    
  With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    .GetFromClipboard
    CreateObject("scripting.filesystemobject").createtextfile("G:\OF\resultaat.txt").write Replace(.GetText, vbTab, "|")
  End With
End Sub
 
Of als het af en toe wat wankele Clipboard niet mee wil werken

Code:
Sub CommandButton1_Click()
  ar = Cells(2, 1).CurrentRegion
  For j = 1 To UBound(ar)
    For jj = 1 To UBound(ar, 2)
      c00 = c00 & ar(j, jj) & "|"
    Next jj
    c00 = Mid(c00, 1, Len(c00) - 1) & vbLf
  Next j
  CreateObject("scripting.filesystemobject").CreateTextFile("E:\Temp\pipeline.txt").write c00
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan