[EXCEL] VBA bestand wegschrijven

Pagina: 1
Acties:
  • 388 views sinds 30-01-2008
  • Reageer

  • TDB
  • Registratie: Oktober 2000
  • Laatst online: 21:43
Ik word hier gek van... ik doe iets fout maar wat...... :?

Ik heb een bestand met 4 mappen (bestand a), twee daarvan worden gekopieerd naar een nieuw te openen excelbestand (bestand b) en vervolgens moet bestand b worden weggeschreven met een bestandsnaam die de gebruiker in bestand a kan opgeven. Deze cel heb ik de naam "bestand" gegeven. Het kopieren van de tabbladen gaat prima maar ergens doe ik iets niet goed want het bestand wordt niet weggeschreven. Dit heb ik:

ActiveWorkbook.SaveAs Filename:=Range(bestand), FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWorkbook.Close

Overigens staat deze macro in bestand a, wellicht maakt dat nog uit....

PSN: TDBtje


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 18:07
Hoe heb je de naam "bestand" gegeven?
Als variabele in VBA -> gebruik bestand.value
Als naam (Named range) in excel -> gebruik
Workbooks("Naam bronbestand").Worksheets("Naam tabblad").Names("bestand").refertorange.value

(Die tweede onder voorbehoud van typefouten)

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Zet bovenaan je code iig 'option explicit'. Dan krijg je geheel automatisch de foutmelding die je op het goede spoor zet :) Overigens zou je eigenlijk sowieso een foutmelding moeten krijgen.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • TDB
  • Registratie: Oktober 2000
  • Laatst online: 21:43
onkl schreef op woensdag 22 augustus 2007 @ 18:34:
Hoe heb je de naam "bestand" gegeven?
Als variabele in VBA -> gebruik bestand.value
Als naam (Named range) in excel -> gebruik
Workbooks("Naam bronbestand").Worksheets("Naam tabblad").Names("bestand").refertorange.value

(Die tweede onder voorbehoud van typefouten)
Inmiddels dit staan
ActiveWorkbook.SaveAs Filename:= _
Workbooks("test.xls").Worksheets("Voorblad").Names("bestand").RefersToRange.Value

Maar nu krijg ik de foutmelding "fout 1004 door de toepassing of door object gedefinieerde fout" In het bestand test.xls op tabblad "Voorblad" heb ik een cel "bestand" genoemd (en van die cel de celeigenschappen op "TEKST" gezet). :?

PSN: TDBtje


Verwijderd

code:
1
filename:=Workbooks("test.xls").Worksheets("Voorblad").range("bestand").value

celformattering hoeft niet op tekst te staan maar de waarde mag uiteraard geen verboden tekens bevatten (zoals : of ; )

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

onkl schreef op woensdag 22 augustus 2007 @ 18:34:
Workbooks("Naam bronbestand").Worksheets("Naam tabblad").Names("bestand").refertorange.value
vziw worden standaard aangemaakte namen in de werkmap opgeslagen, dus:
code:
1
Workbooks("Naam bronbestand").Names("bestand")  [.refertorange.value]


Zou al genoeg moeten zijn. (tekst tussen [] optioneel, zelfs range("bestand") wordt iha correct geinterpreteerd.)

Maar, en het is vaker gezegd, niet geheel onbelangrijk, welke versie van xl gebruik je?

[ Voor 6% gewijzigd door Lustucru op 22-08-2007 23:56 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • TDB
  • Registratie: Oktober 2000
  • Laatst online: 21:43
Lustucru schreef op woensdag 22 augustus 2007 @ 23:54:
[...]


Maar, en het is vaker gezegd, niet geheel onbelangrijk, welke versie van xl gebruik je?
Office 2003

PSN: TDBtje


  • TDB
  • Registratie: Oktober 2000
  • Laatst online: 21:43
Verwijderd schreef op woensdag 22 augustus 2007 @ 22:55:
code:
1
filename:=Workbooks("test.xls").Worksheets("Voorblad").range("bestand").value

celformattering hoeft niet op tekst te staan maar de waarde mag uiteraard geen verboden tekens bevatten (zoals : of ; )
_/-\o_ Dank is groot!!

PSN: TDBtje

Pagina: 1