• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

CSV opslaan - dubbele kwootjes

  • Onderwerp starter Onderwerp starter HJ1
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

HJ1

Gebruiker
Lid geworden
3 sep 2021
Berichten
73
Wanneer ik via VBA één werkblad in mijn .XSLM bestand wil opslaan als CSV komen er dubbele kwootjes, dit is niet wenselijk.

Kolom A en B zijn goed.
Kolom C is een samengesteld veld met een Functie.

piet,601,"Z-01, PR01, RE01, UR05, MA01"
piet,601,"Z-02, FI05, BE01, UR05"


Hoe krijg ik dit opgeslagen zonder de dubbele kwootjes??

Code:
Sub OPSLAAN_CSV()
  
Dim stPath As String
With ActiveWorkbook.Sheets
    stPath = "H:\TEMP\"
    With CreateObject("Scripting.FileSystemObject")
        If Not .FolderExists(stPath) Then .CreateFolder stPath
    End With
    ActiveWorkbook.SaveAs Filename:=stPath & Sheets("Invullen").Range("D10") & " - " & Sheets("Invullen").Range("I9") & " - " & Sheets("Invullen").Range("E6") & ".xlsm"
End With


Dim stPath2 As String
Sheets("Output").Select
With ActiveWorkbook.Sheets
    stPath2 = "H:\import\"
    With CreateObject("Scripting.FileSystemObject")
        If Not .FolderExists(stPath2) Then .CreateFolder stPath2
    End With
    ActiveWorkbook.SaveAs Filename:=stPath2 & Sheets("Invullen").Range("D10") & " - " & Sheets("Invullen").Range("I9") & " - " & Sheets("Invullen").Range("E6") & ".csv", FileFormat:=xlCSV
    'ThisWorkbook.Close
End With
 
Waarom staan er dan quootjes in kolom C? Dat is dan toch vragen om moeilijkheden? Weglaten lijkt mij dan de beste en snelste oplossing gezien dat je in een andere kolom óók tekst aanlevert.
 
In kolom C staan geen quootjes, die worden er na het opslaan als CSV er pas toegevoegd.

Excel:
piet | 601 | Z-01, PR01, RE01, UR05, MA01
piet | 601 | Z-02, FI05, BE01, UR05

Bij opslaan csv worden ze toegevoegd (FileFormat:=xlCSV):
piet, 601,"Z-01, PR01, RE01, UR05, MA01"
piet,601,"Z-02, FI05, BE01, UR05"

Wenselijk:
piet;601;Z-01, PR01, RE01, UR05, MA01
piet;601;Z-02, FI05, BE01, UR05
 
Code:
With Sheets("Invullen")
  ActiveWorkbook.SaveAs stPath2 & join(array(.Range("D10"),.Range("I9"),.Range("E6")),"-") & ".csv", 23, local:=true
End with

Als bij de internationale instellingen van Windows de komma als lijstscheidingsteken staat, gebruikt Excel dat voor csv bestanden (schrijven/lezen).
Als in een cel komma's voorkomen kunnen die alleen maar van het komma-lijstscheidingsteken onderscheiden worden als er aanhalingstekens om de inhoud van zo'n cel worden gezet.

Remedie structureel:
pas het lijstscheidingsteken bij de internationale instellingen van Windows aan ( naar puntkomma)
Remedie incidenteel:
gebruik de parameter local:=true
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan