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

Vervolgvraag Macro

Status
Niet open voor verdere reacties.

Josh2k4

Gebruiker
Lid geworden
13 aug 2015
Berichten
20
Hoi,
recent ben ik (zeer goed) geholpen op dit forum met een macro.
Deze macro splitst één lang bestand naar diverse losse bestandjes.

Echter de losse bestanden worden opgeslagen als XLS.
Ik zou graag willen dat dit CSV wordt.

Enkel 'XLS' in onderstaande macro aanpassen naar 'CSV' levert wel bestandjes op met een csv extentie, maar als je deze vervolgens opent met notepad krijg je rare tekens te zien

Iemand enig idee?


Code:
Sub tsh()
    Dim vCode
    Dim I As Long
    
    Application.ScreenUpdating = False
    With ThisWorkbook.Sheets("Blad1").UsedRange
        vCode = Application.Transpose(Evaluate("if(" & .Resize(, 1).Address & "=""CODE"",row(1:" & _
            .Rows.Count & "),""~"")"))
        vCode(UBound(vCode)) = .Rows.Count + 2
        vCode = Filter(vCode, "~", False)
        For I = 0 To UBound(vCode) - 1
            Sheets("Sjabloon").Copy
            .Range("A" & vCode(I) + 2).Resize(vCode(I + 1) - vCode(I) - 2, .Columns.Count).Copy
            ActiveSheet.Paste Destination:=Range("A1")
            Application.CutCopyMode = False
            ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & .Range("B" & vCode(I)) & ".xls", FileFormat:=51
            ActiveWorkbook.Close False
        Next
    End With
    Application.ScreenUpdating = True
End Sub
 
ik heb iets te vroeg gejuicht.
Deze geeft een CSV door een komma gescheiden, ik moet echter punt/komma gescheiden hebben

iemand een idee?
 
je kunt "Local=True" toevoegen, maar dan moet de 'separator' value wel op ';' staan.

(standaard is natuurlijk komma, het is niet voor niets "comma separated values" ;) )
 
hoi,
dank voor de reactie, maar ik ben een VBA noob - waar moet ik dat exact neerzetten?
 
Waarschijnlijk zo:
Code:
Sub tsh()
    Dim vCode
    Dim I As Long
    
    Application.ScreenUpdating = False
    With ThisWorkbook.Sheets("Blad1").UsedRange
        vCode = Application.Transpose(Evaluate("if(" & .Resize(, 1).Address & "=""CODE"",row(1:" & _
            .Rows.Count & "),""~"")"))
        vCode(UBound(vCode)) = .Rows.Count + 2
        vCode = Filter(vCode, "~", False)
        For I = 0 To UBound(vCode) - 1
            Sheets("Sjabloon").Copy
            .Range("A" & vCode(I) + 2).Resize(vCode(I + 1) - vCode(I) - 2, .Columns.Count).Copy
            ActiveSheet.Paste Destination:=Range("A1")
            Application.CutCopyMode = False
            [COLOR="#FF0000"]ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & .Range("B" & vCode(I)) & ".csv", FileFormat:=6, Local:=True[/COLOR]
            ActiveWorkbook.Close False
        Next
    End With
    Application.ScreenUpdating = True
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan