Excel werkblad opslaan als CSV

Pagina: 1
Acties:

  • zuudje
  • Registratie: Mei 2005
  • Laatst online: 09-11 13:57
Hallo,

Ik ben bezig met het opslaan van een Excel werkblad naar een CSV file maar op deze manier wordt de hele werkmap opgeslagen in de CSV file, dat is niet de bedoeling. Hij moet het meer op de achtergrond opslaan en niet met het CSV bestand komen.


Hier onderstaat een link naar een soortgelijk probleem maar kom er nog niet uit.
http://gathering.tweakers.net/forum/list_messages/1129127

Dit is mijn code onder de knop in het werkblad.
code:
1
2
3
4
    Application.Run "exsion.xla!menu_data"
    Bestandsnaam$ = "G:\Logistiek\Balie PV1\Geuze\PO-0" + Str(Range("L7").Value) + ".csv"
    ActiveWorkbook.SaveAs Bestandsnaam$, FileFormat:= _
        xlCSV, CreateBackup:=False

Verwijderd

eerst opslaan als gewoon excelbestand.
dan als csv.
csv sluiten & gewoon excelbestand terug openen.
eraan verderwerken.

of bedoelde je iets anders met "meer op de achtergrond".

  • zuudje
  • Registratie: Mei 2005
  • Laatst online: 09-11 13:57
@_heretic_

Ja ik bedoel met meer op de achtergrond van:

Hij mag het active workbook niet afsluiten of van het active workbook een compleet CSV bestand van maken. Hij moet in een andere map het CSV filetje opslaan.

Verwijderd

wel dan is de voorgestelde werkwijze toch de goede? je kan eventueel ook met verschillende bestandsnamen werken.
bekijk ook de methode savecopyas van het workbook object.

  • zuudje
  • Registratie: Mei 2005
  • Laatst online: 09-11 13:57
@_Herectic_

Sorry, die werkwijze gebruik ik nu met het bestand maar probleem is er numeerdere mensen tegelijk er in gaan werken.

Ik ben nu inderdaad aan kijken voor SaveCopyAs alleen kan ik dan ook nog als CSV opslaan? WAnt ik had mn eerste code aangepast naar SaveCopyAs en dan geeft hij een foutmelding aan.

Verwijderd

zoiets:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Opslaan()
   Dim KopieWerkmap  As Workbook
  
  ThisWorkbook.Save
  Application.AlertBeforeOverwriting = False
  Application.DisplayAlerts = False
  Application.ScreenUpdating = False
  ThisWorkbook.SaveCopyAs "d:\temp\test.xls"
  Set KopieWerkmap = Workbooks.Open("d:\temp\test.xls")
  KopieWerkmap.SaveAs Filename:="d:\temp\test.csv", FileFormat:=xlCSVWindows
  KopieWerkmap.Close False
  Application.AlertBeforeOverwriting = True
  Application.DisplayAlerts = True
  Application.ScreenUpdating = True
End Sub
wanneer meerdere gebruikers tegelijkertijd deze actie uitvoeren kom je in de problemen. je zou bv. eerst een tekstbestandje kunnen wegschrijven dat aanduidt dat excel bezig is met opslaan. na het opslaan verwijderen je dit tekstbestand waarmee aangegeven wordt dat andere gebruikers kunnen opslaan.

[ Voor 63% gewijzigd door Verwijderd op 27-02-2008 15:06 ]


  • zuudje
  • Registratie: Mei 2005
  • Laatst online: 09-11 13:57
@_Heretic_

Bedankt, Ik ga hier mee aan de slag het komt goed. als ik het klaar heb post ik het hier nog wel even. dan kunnen andere gebruikers ook nog zien.

Ik ga het wel iets aanpassen want ik ga een apart xls. file maken met alle macro`s erin en die dan linken. het zelfde als je bijv. een functie bestand bij het programeren van een website gebruikt.
Pagina: 1