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

Selectie opslaan als CSV bestand via VBA

Status
Niet open voor verdere reacties.

Omteleren

Gebruiker
Lid geworden
12 nov 2011
Berichten
194
Hoi,

Is het mogelijk om een selectie op te slaan als CSV bestand in een bepaalde directory.

Dit is wel waarschijnlijk wel te veel gevraagd, maar ik heb hier al veel oplossingen gezien die ik niet voor mogelijk hield.

Naam van het bestand: 20-export vjp
Directory : i:\temp
Regels: afhankelijk van de selectie.

Ik ben een beetje bekend met VBA en ik kan een macro opnemen. Bovenstaande wensen zijn wel heel moeilijk via een macrorecorder.

Ik wil dit automatiseren, omdat dit een veel voorkomende handeling is. Ik probeer het via dit forum op te lossen. Ik heb een voorbeeld onderstaand toegevoegd.
Opgeslagen moet worden cel i22..R23. (de kopregel wordt niet geselecteerd)
Het aantal regels is dus telkens anders, afhankelijk van de selectie. Ik ben al blij of dat iemand kan vertellen of dit úperhaupt wel mogelijk is.
 

Bijlagen

  • Opslaan selectie.PNG
    Opslaan selectie.PNG
    11,4 KB · Weergaven: 80
Laatst bewerkt:
Dat zal geen probleem zijn maar met een plaatje lukt dat toch echt niet.
 
Probeer het zo eens. Wel even het pad aanpassen.
Code:
Sub VenA()
  c00 = "C:\temp\20-export vjp.csv"
  ar = Range("I22:R" & Cells(Rows.Count, 9).End(xlUp).Row)
  With Workbooks.Add
    .Sheets(1).Cells(1).Resize(UBound(ar), UBound(ar, 2)) = ar
    .SaveAs c00, 6
    .Close 0
  End With
End Sub
 
Hoi VenA,
Super, bijna helemaal naar wens!
Kolom Q in voorbeeld moet 0100 ipv 100, 4 cijferig. Dit is een kostenplaats (voorbeeld klom Q) en is een tekstvlak van 4 getallen en er komt bij 3 cijferig een voorloop nul.
Rekening kolom M moet 6 cijferig zijn, dus 14111 moet 014111 zijn. Rekening staat altijd in de 5 kolom en kopstenplaats in de 9 kolom . (kolom M is 6 cijferig en kolom Q is 4 cijferig).

Dan is het perfect! Geweldig. Ik had bestand niet meegestuurd, omdat er bedrijfsgevoelige gegevens in gekoppeld waren.
Met 4 regels werkt het ook, mooi. Als de voorloop nul er ook nog uit is, dan is het helemaal geweldig.
Alvast enorm bedankt. Dit voorbeeld komt al een heel eind in de goede richting, als er maar geen voorloopnullen zijn.
 
Laatst bewerkt:
Een voorbeeldbestand is altijd te maken.

Code:
Sub VenA()
  c00 = "C:\temp\20-export vjp.csv"
  ar = Range("I22:R" & Cells(Rows.Count, 9).End(xlUp).Row)
  With Workbooks.Add
    With .Sheets(1).Cells(1).Resize(UBound(ar), UBound(ar, 2))
      .NumberFormat = "@"
      .Value = ar
    End With
    .SaveAs c00, 6
    .Close 0
  End With
End Sub
 
Hoi VenA,
Het tekstbestand ziet er goed uit. Ik ga het binnenkort in de praktijk testen. Ik had inderdaad een apart werkblad kunnen maken.
Hoe je het voor elkaar krijgt doorzie ik nog niet helemaal, maar je kunt in ieder geval toveren.

Bedankt voor je code, waardeer het bijzonder. Nogmaals bedankt!
 
Laatst bewerkt:
Zonder eerst een nieuw werkblad aan te maken kan ook en is waarschijnlijk sneller bij niet al te veel gegevens.

Code:
Sub VenA()
  c00 = "E:\temp\20-export vjp.csv"
  ar = Range("I22:R" & Cells(Rows.Count, 9).End(xlUp).Row)
  For j = 1 To UBound(ar)
    For jj = 1 To UBound(ar, 2)
      c01 = c01 & ar(j, jj) & IIf(jj = UBound(ar, 2), "", ",")
    Next jj
    c01 = c01 & vbCrLf
  Next j
  CreateObject("scripting.filesystemobject").CreateTextFile(c00).write c01
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan