• 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.

tekst waarde kopiëren in plakken in CSV file als tekstnotatie via VBA

Status
Niet open voor verdere reacties.

Peer44

Gebruiker
Lid geworden
25 jan 2008
Berichten
224
Hallo,

voor een registratie kunnen we CSV files inlezen, er zijn bepaalde codes die moeten worden ingelezen; o.a. de code 200.1002
de export van de data lezen we in excel in, vervolgens wordt er een bepaalde selectie van gemaakt en daar wordt weer een CSV file van gemaakt, deze CSV files moeten we op een website inlezen.

om de code 200.1002 in te lezen gebruik ik een vert.zoeken functie, de zoekwaarde is '200.1002 (met apostrof om het als tekstveld te gebruiken.)
De codes voor de export zien er in Excel goed uit, zoals ze moeten zijn..

vanuit Excel exporteer ik de data naar een CSV file(vba), maar in de CSV file is de opmaak van deze betreffende code getal, dus staat er 2001002 zonder de punt...........
dit komt door de "ongelukkige" opmaak van de code. Helaas kan ik de code niet wijzigen.

Hoe kan ik er nu voor zorgen dat in de csv file de code staat zoals bedoeld?
ik maak gebruik van VBA om deze code te exporteren:

Code:
Sheets("data").Select
    Rows("2:2").Select
    Range("E2").Activate
    'autofilter wordt toegevoegd en er wordt gefilter op 2
    Selection.AutoFilter
    Range("Y2").Select
    ActiveSheet.Range("$A$2:$Y$2").AutoFilter Field:=25, Criteria1:="2"
    Range("D1:X2").Select
    Range("D2").Activate
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
        'de selectie is gekopieerd en wordt weggeschreven naar een nieuwe CSV file
        Workbooks.Add
        ActiveSheet.Paste
        Columns("A:J").EntireColumn.AutoFit
        Columns("D:D").Select
        Selection.NumberFormat = "dd.mm.yyyy"
        Columns("B:B").Select
        Selection.NumberFormat = "@"
           
            'het bestand wordt opgeslagen als CSV filenamen en folderpath zijn gedclareerd als variabele.
            ActiveWorkbook.SaveAs filename:=folderpath & filename, FileFormat:=xlCSV, Local:=True, _
                CreateBackup:=False
            
            ActiveWindow.Close
 
Laatst bewerkt:
Probeer eens deze?
Code:
Sub Spaarie()
    With Sheets(1)
        .Rows("2:2").AutoFilter 25, "2"
        .Range("D2", Selection.End(xlDown)).Copy
        
        With Workbooks.Add
            With .Sheets(1)
                .Cells(1).PasteSpecial
                .Columns.AutoFit
            End With
        End With
        ActiveWorkbook.SaveAs folderpath & Filename, xlCSV
    End With
End Sub
 
Wat jij doet kan ook in 1 regel zonder tussenkomst van een Excel werkblad:

Code:
Sub M_snb()
   with createobject("scripting.filesystemobject")
      .createtextfile("G:\OF\export.csv").write join(filter(split(replace(.opentextfile("G:\OF\import.csv").readall,vbcrlf,vbcrlf & "|"),"|"),"2" & vbcrlf),"")
   end with
end sub
 
Bedankt voor jullie suggesties, heb de code van Spaarie geprobeerd resultaat in de #NB codes, omdat hetgeen wat ik kopieer de waardes zijn van formules.
ben verder gegaan door bij pastespecial de values only in te geven:

.Cells(1).PasteSpecial xlPasteValues

maar helaas is dan de export nog niet goed. 2.001.002
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan