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

Macro CSV alleen als veld gevuld

Status
Niet open voor verdere reacties.

CVGhulp

Gebruiker
Lid geworden
17 nov 2015
Berichten
34
Hoi allen,

Ik heb een macro die ervoor zorgt dat alle tabbladen apart worden opgeslagen als CSV. Dit gaat goed echter neemt die ook de zaken waarin lege cellen staan.

Wat doe ik nu?
- Zie tabblad INPUT, hier staan de harde data (die steeds wisselt)
- In tabblad Blad1 zie je een celverwijzing naar tabblad INPUT. Als cel leeg is dan toont die niks (en moet straks ook niet in csv komen) en als die gevuld is dan toont die het wel.
- Macro gemaakt die ieder tabblad apart opslaat als CSV.

Probleem is nu echter dat ieder csv bestand nu alle regels overneemt met een celverwijzing. Ik wil graag dat alleen de daadwerkelijk gevulde regels worden getoond in de tabbladen. Verder wil ik graag dat csv bij het openen direct gescheiden worden getoond (ipv achter elkaar met komme). Dit heeft te maken met vervolgstap in systeem.

Wie kan mij helpen?


Option Explicit

Sub WriteSheetsToCSV()

Dim zSourcePath As String
Dim zDestPath As String
Dim zTabName As String
Dim oSheet As Worksheet

zSourcePath = "H:\Temp"
zDestPath = zSourcePath

For Each oSheet In ActiveWorkbook.Sheets
oSheet.Activate
zTabName = oSheet.Name

ActiveWorkbook.SaveAs Filename:= _
zDestPath & zTabName & ".csv", FileFormat:=xlCSV, _
CreateBackup:=False

Next

End Sub
 

Bijlagen

  • 20160627 VB bestand.xlsx
    9 KB · Weergaven: 25
Voor code zijn de codetags uitgevonden. Maak er dan ook gebruik van.

Code:
Sub VenA()
ar = Sheets("Blad1").Cells(1).CurrentRegion
    For j = 1 To UBound(ar)
        If ar(j, 1) <> "" Then
            For jj = 1 To UBound(ar, 2)
                c00 = c00 & ar(j, jj) & ","
            Next jj
                c01 = c01 & Left(c00, Len(c00) - 1) & vbCrLf
                c00 = ""
        End If
    Next j
CreateObject("scripting.filesystemobject").CreateTextFile("D:\Temp\export.dat").write c01
End Sub

Het pad zal je even moeten aanpassen. Open het bestand vanuit Excel ipv vanuit de verkenner. Je hebt dan wat meer opties om het netjes in de juiste kolommen te krijgen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan