• 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 een veranderend aantal cellen opslaan als csv

Status
Niet open voor verdere reacties.

Havana100

Verenigingslid
Lid geworden
22 jul 2014
Berichten
309
Beste,

Als absoluut geen VBA kenner wou ik alle rijen (in tab geg) opslaan als CSV bestand met de benaming zoals vermeld in cel A1 van tab info. Het is wel zo dat het aantal rijen kan variëren tussen 2 en 2000.

In bijlage een voorbeeld.

Sowieso bedankt om het al te bekijken!
 

Bijlagen

  • test.xlsm
    18,6 KB · Weergaven: 15
In principe hoef je geen werkboek aan te maken.

Code:
Sub CSV()
With ThisWorkbook
  .Sheets("geg").SaveAs Filename:=Sheets("Info").Range("A1"), FileFormat:=xlCSV, Local:=True
  .Close True
End With
End Sub
 
Harry,

Bedankt hoor, is sowieso waar maar maakt hij dan niet een volledige kopij van de volledige tab geg? Er kan bijvoorbeeld in kolom C nog data staan maar in kolom A zal dan geen data staan. Hij zou dus maar een kopie mogen maken als er in kolom A een waarde staat.
 
Zet het volledige path in A1 van blad Info.
Code:
Sub CSV()
Dim sv
sv = Sheets("geg").Cells(1).CurrentRegion.Resize(Sheets("geg").Cells(Rows.Count, 1).End(xlUp).Row)
With Workbooks.Add.Sheets(1)
   .Cells.NumberFormat = "@"
   .Cells(1).Resize(UBound(sv), UBound(sv, 2)) = sv
   .SaveAs Filename:=ThisWorkbook.Sheets("Info").Range("A1"), FileFormat:=xlCSV, Local:=True
   .Parent.Close False
 End With
End Sub
 
Laatst bewerkt:
Harry,

nogmaals bedankt! Echter alle kolommen worden nu gekopieerd. De bedoeling is van de kolommen A tot en met kolom J te kopiëren.
 
Kleine aanpassing.
Code:
Sub CSV()
Dim sv
sv = Sheets("geg").Cells(1).CurrentRegion.Resize(Sheets("geg").Cells(Rows.Count, 1).End(xlUp).Row[COLOR=#ff0000][SIZE=4],10[/SIZE][/COLOR])
With Workbooks.Add.Sheets(1)
   .Cells.NumberFormat = "@"
   .Cells(1).Resize(UBound(sv), UBound(sv, 2)) = sv
   .SaveAs Filename:=ThisWorkbook.Sheets("Info").Range("A1"), FileFormat:=xlCSV, Local:=True
   .Parent.Close False
 End With
End Sub
 
Harry,

super, werkt perfect, bedankt! En ..... weeral iets bijgeleerd!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan