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

VBA Excel bereik van werkblad opslaan als csv

Status
Niet open voor verdere reacties.

Timmiesch

Gebruiker
Lid geworden
14 nov 2007
Berichten
630
Goedemiddag,

Ik heb een bestand met 5 tabbladen waaronder 1 tabblad Vriezenveen.
Van dit tabblad wil ik een bepaald bereik (B1 t/m laatste cel in kolom T) opslaan als CSV.
Onderstaande code heb ik gekregen van iemand maar daarmee krijg ik het niet werkend.

Kan iemand mij helpen om het op te slaan als CSV, hoe moet de code er dan uitzien?
Daarnaast zoek ik naar een oplossing om de laatste cel in kolom T te bepalen, hoe kan ik dit erin verwerken?
Alvast bedankt.




Code:
Sub OpslaanVriezenveen()
    Dim FacName As String
    Dim Map As String
    
    'De macro haalt met deze opdracht gegevens op in het document, om deze later als naam voor het bestand te gebruiken.
    FacName = Sheets("Vriezenveen").Range("B1").Value & Sheets("Vriezenveen").Range("G1").Value & ".csv"
    
    'De folder waarin het bestand moet worden opgeslagen
    Map = "O:\Plaatsnamen\"
    If Dir(Map, vbDirectory) = "" Then
        MsgBox "De folder " & Map & " bestaat niet"
        Exit Sub
    End If
       
    'Een controle om geen bestaand bestand te overschrijven.
    If Dir(FacName) <> "" Then
       MsgBox "Het bestand: " & FacName & " bestaat reeds"
    Else
        On Local Error GoTo Fout
        Sheets("Vriezenveen").Range("B6:T25000").ExportAsFixedFormat _
            Type:=xlTypeCSV, _
            Filename:=FacName, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=False, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
        MsgBox "Het bestand: " & FacName & " is opgeslagen"
        Exit Sub
    End If
    
Fout:
    MsgBox "Het bestand: " & FacName & " is NIET opgeslagen"
End Sub
 
Probeer dit maar eens:
Code:
Sub OpslaanVriezenveen()
    Dim facname As String
    Dim LR As Long

   [COLOR="#008000"] 'Bepaal de laatst gebruikte regel in kolom T[/COLOR]
    With ActiveSheet
        LR = .Cells(.Rows.Count, "T").End(xlUp).Row
    End With
    
   [COLOR="#008000"] 'Zichtbare zaken en meldingen uit zetten[/COLOR]
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With
    
    [COLOR="#008000"]'Bepaal de plaats en naam van het CSV bestand[/COLOR]
    facname = "O:\Plaatsnamen\Vriezenveen.csv"
    
    [COLOR="#008000"]'Kopiëer het benodigde gebied[/COLOR]
    Sheets("Vriezenveen").Range("B6:T" & LR).Copy
    
    [COLOR="#008000"]'Voeg een werkboek toe[/COLOR]
    Workbooks.Add
    
    [COLOR="#008000"]'En plaats daar het gekopiëerde gebied in[/COLOR]
    ActiveSheet.Paste
    
   [COLOR="#008000"] 'Sla dat werkboek op als CSV bestand en sluit deze[/COLOR]
    With ActiveWorkbook
        .SaveAs Filename:=facname, FileFormat:=xlCSV
        .Close
    End With
    
   [COLOR="#008000"] 'Zichtbare zaken en meldingen aan zetten[/COLOR]
    With Application
        .ScreenUpdating = True
        .DisplayAlerts = True
    End With
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan