Excel steeds opnieuw overschijven

  • Onderwerp starter Onderwerp starter pvag
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

pvag

Gebruiker
Lid geworden
7 jan 2009
Berichten
64
Beste experts,

Ik heb een excel sjabloon wat ik ná de eerste keer geopend en gegevens ingevoerd te hebben, wil wegschrijven als een excel werkmap met macro's.
Daarna wordt de excel werkmap met macro's gebruikt om in te werken, zodat het sjabloon vrij blijft voor komende jaren.
Vanuit het path waar het sjabloon wordt opgestart, moet ook de excel werkmap met macro's worden weggeschreven.
Het path is me niet bekent, omdat het sjabloon en later de werkmap wordt gebruikt op een Mac.
De FileName wordt samengesteld uit enkele namen die uit het werkblad 'Param' worden gehaald.
Met onderstaande code krijg ik steeds de foutmelding 'kan benoemde argument niet vinden'.
Wie heeft voor mij de pasklare oplossing.
Alvast bedankt.

Code:
Private Sub Opsl_Click()

Dim sFileName As String
sFileName = "Taptoe" & Sheets("Param").Range("F4").Value & Sheets("Param").Range("F3").Value ' & ".xlsx"

 
  ActiveWorkbook.SaveCopyAs Filename:= _
  Path & sFileName, FileFormat:= _
  xlOpenXMLTemplateMacroEnabled, Password:="", WriteResPassword:="", _
  ReadOnlyRecommended:=False, CreateBackup:=False
 
 
Range("C2").Select
End Sub
 
Je gebruikt een variabele die je niet vult (Path & sFileName). Heb je Option Explicit aanstaan?
 
Beste OctaFish,

bedankt voor je reactie.
ik ben maar een leek en probeert te begrijpen wat er gebeurt in een degelijk script.
Door hier en daar wat te hale en te verbouwen lukt het aardig.
Wat betreft het Path, was ik van mening dat het bestand in hetzelfde path wordt opgeslagen waar het sjabloon ook staat.
Wat je vraagt over option expliciet, dat wordt gebruikt elders in de sheet om een tijd op het scherm te laten draaien die ik gebruik om een tijdstempel mee te geven als een mutatie wordt weggeschreven naar een database, om te voorkomen dat gegevens worden overschreven.
Maar wat die Option Excpliciet precies doet of moet doen, geen idee.

De foutmelding waarover ik het heb wordt gegeven op FileFormat:= die wordt dan geel.
Verder kan ik je weinig info geven omdat het me boven de pet groeit.

Groetjes, Ton
 
Ben verre van een specialist, ik gebruik een vergelijkbare functie in één van mijn bestanden en omgebouwd zou de onderstaande code moeten werken:

Code:
Private Sub Opsl_Click()

a = Sheets("Param").Range("F4").Value
b = Sheets("Param").Range("F3").Value


    With ThisWorkbook
        .SaveAs ThisWorkbook.Path & "Taptoe " & a & b & ".xlsm"
    End With

End Sub

Ben trouwens benieuwd; wat doet die apostrof in jouw code, gaat het daar mogelijk fout?
Code:
sFileName = "Taptoe" & Sheets("Param").Range("F4").Value & Sheets("Param").Range("F3").Value[U][COLOR="#FF0000"] '[/COLOR][/U] & ".xlsx"
 
Dat quootje ziet er inderdaad uit alsof dat daar verdwaald is :). Zoals je in de code van Excellerend kunt zien, is ThisWorkbook.Path wél een goede manier om Path te gebruiken; Path alleen is dat volgens mij niet. Vanwege Option Explicit dwing je in je procedures af dat een variabele altijd gedeclareerd moet zijn. Is die dat niet, en roep je hem vervolgens aan, dan krijg je een foutmelding. Je zou die regel dus eens kunnen omzetten naar commentaar en dan kijken of de code wel werkt. Uiteraard zonder dat illegale quootje :D.
 
Beste Excellerend,

Bedankt voor de moeite.
Helaas werkt het niet. Krijg weer een foutmelding op: .SaveAs ThisWorkbook.Path & "Taptoe " & a & b & ".xlsm"
Wordt weer opnieuw geel.
Wat die apostrof betreft, dat kun jij niet zien in d code, maar die schakelt de verwijzing naar de extensie uit.
had dat uiteraard ook weg kunnen halen.

Groetjes, Ton
 
Heb je de code één op één overgenomen, dus incl. "With ThisWorkbook"?
Staat je sjabloon direct op je C-schijf?

Probeer anders je eigen code nogmaals en verander .xlsx in .xlsm (gezien het gebruik van macro's, wel die apostrof weghalen)

Code:
& ".xls[U][COLOR="#FF0000"]x[/COLOR][/U]"
 
Laatst bewerkt:
Wat staat er in a en b? bij het gebruik van ThisWorkbook.Path mis je "\" dus zal je in de code moeten opnemen. en waarschijnlijk ook achter "Taptoe " Is Taptoe met een extra spatie erachter?

Edit
Ik zie nu dat je met een Mac werkt. Probeer dan eerst het pad te achterhalen met
Code:
msgbox Thisworkbook.path
 
Laatst bewerkt:
Bedankt voor jullie info, maar ik denk dat we elkaar niet goed begrijpen.
Ik wil het slabloon ( Taptoe_muntverkoop ) opslaan als werkblad met macro's.
De naam van het werkblad met macro's wordt samengesteld met gegevens uit het werkblad 'Param' zoals in de eerste code die plaatste te zien is.
Standaard kun je in de excel opties aangeven waar de excel bestanden moeten worden opgeslagen.
Als ik het bestand opsla dan wordt het weggeschreven. Maar wil ik het bestand vervolgens weer opslaan, dan wordt het niet overschreven.
En dat moet dus wel. Verwijder ik het bestand op de opslaglocatie en wil het weer opslaan dan gaat het wel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan