Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[VBA][EXCEL] Syntax error in save command

Pagina: 1
Acties:

  • Jwlb
  • Registratie: November 2010
  • Laatst online: 15-11 12:18
Ik ben bezig met het maken van een sheet voor op mijn werk welke ter afsluiting van een shift moet worden ingevuld (hotelreceptie). Ik heb een button aangemaakt welke het bestand moet printen en de actieve sheet in een ander bestand moet opslaan. De syntaxerror die Excel mij geeft komt voor in Line 5.

De bedoeling is dat het bestand wordt opgeslagen onder de volgende naam 2012-02-28-Vroeg.xls. De shiftnaam staat in cel E8 en dit kan Vroeg, Laat of Nacht en wordt aangegeven dmv een drop down menu (data validation)

code:
1
2
3
4
5
6
7
8
Sub Button2_Click()
    ThisFile = Range("E8").Value
    ActiveSheet.PrintOut
    ActiveSheet.Copy
    ActiveWorkbook.SaveAs "Backup\" & Format(Now(), "yyyy-mm-dd") & "-" & ThisFile & ".xls"
    ActiveWorkbook.Close
    
End Sub


Ik kan het foute in de syntax niet meer terugvinden. Ik heb zelf dan ook geen technische opleiding maar hogere hotelschool. De beperkte kennis die ik heb is dus afkomstig van hobbywerk en maakt troubleshooting last voor mij. Kan iemand mij hiermee uit de brand helpen.

  • ocwil
  • Registratie: Mei 2007
  • Laatst online: 20-11 14:52
moet je de variable ThisFile niet eerst Dim'en?

~ Portal 2 maps: linkje ~ LoL (EUW): Ocwil ~


  • Rupie
  • Registratie: Augustus 2006
  • Laatst online: 13-11 11:58
Het ')' achter "yyyy-mm-dd") is een losstaand haakje en dat kan niet.
laat maar, ik zit er zelf overheen te kijken

[ Voor 27% gewijzigd door Rupie op 28-02-2012 12:18 ]

Desktop | Server | Laptop


  • Jwlb
  • Registratie: November 2010
  • Laatst online: 15-11 12:18
Rupie schreef op dinsdag 28 februari 2012 @ 12:17:
Het ')' achter "yyyy-mm-dd") is een losstaand haakje en dat kan niet.
Het haakje is toch ter afsluiting van de Now?
(Now(), "yyyy-mm-dd")
2 haakjes openen en 2 haakjes sluiten.

Ik ga het in ieder geval proberen

Mijn edit kwam tegelijkertijd met jou edit :P

[ Voor 6% gewijzigd door Jwlb op 28-02-2012 12:20 ]


  • ocwil
  • Registratie: Mei 2007
  • Laatst online: 20-11 14:52
tevens zou je eventueel nog ",fileformat:=XX" kunnen toevoegen.
http://www.rondebruin.nl/saveas.htm

[ Voor 22% gewijzigd door ocwil op 28-02-2012 12:23 ]

~ Portal 2 maps: linkje ~ LoL (EUW): Ocwil ~


  • Rupie
  • Registratie: Augustus 2006
  • Laatst online: 13-11 11:58
Ik zag het al, had mijn reactie al aangepast. Moet je niet formatdatetime hebben trouwens?

En probeer het anders eerst eens uit elkaar te trekken. Probeer eerst de datum in een andere variable naar behoren te formateren en gebruik die variabele in de opbouw van je naam.

[ Voor 50% gewijzigd door Rupie op 28-02-2012 12:26 ]

Desktop | Server | Laptop


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

ocwil schreef op dinsdag 28 februari 2012 @ 12:17:
moet je de variable ThisFile niet eerst Dim'en?
Daar lijkt het inderdaad fout te gaan: Excel moet nu 'gokken' dat het om een string gaat. Dus mooier:
Visual Basic:
1
2
3
4
5
6
7
8
9
Sub foo()
    Dim thisFile, fileInclPath As String
    thisFile = Range("E8").Value
    ActiveSheet.PrintOut
    ActiveSheet.Copy
    fileInclPath = Format(Now(), "yyyy-mm-dd") & "-" & thisFile & ".xls"
    ActiveWorkbook.SaveAs fileInclPath
    ActiveWorkbook.Close
End Sub


Edit: waar ik t.b.v. testen overigens de procedurenaam heb aangepast en de directory heb weggelaten. Aanpassen naar wens :P

[ Voor 10% gewijzigd door F_J_K op 28-02-2012 13:03 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

F_J_K schreef op dinsdag 28 februari 2012 @ 13:02:
[...]

Daar lijkt het inderdaad fout te gaan: Excel moet nu 'gokken' dat het om een string gaat. Dus mooier:
Visual Basic:
1
    Dim thisFile, fileInclPath As String
Foei toch. :+ Ook nu moet Excel gokken dat het een string is. :) thisfile wordt nog steeds gedimensioneerd als variant.
Edit: waar ik t.b.v. testen overigens de procedurenaam heb aangepast en de directory heb weggelaten. Aanpassen naar wens :P
En daar zit de clou: ik vermoed dat er helemaal geen syntax-error plaatsvindt, omdat de gegeven sntax imho correct is. Een runtime error is waarschijnlijker en dat zou wel eens kunnen omdat er in de actieve directory helemaal geen subdir 'backup' bestaat. Beter is het om het volledige pad te gebruiken ipv een relatief pad.

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


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Crap :X

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 00:12

Reptile209

- gers -

Lustucru schreef op dinsdag 28 februari 2012 @ 19:00:
[...]

En daar zit de clou: ik vermoed dat er helemaal geen syntax-error plaatsvindt, omdat de gegeven sntax imho correct is. Een runtime error is waarschijnlijker en dat zou wel eens kunnen omdat er in de actieve directory helemaal geen subdir 'backup' bestaat. Beter is het om het volledige pad te gebruiken ipv een relatief pad.
Kijk eens naar de waarde van ActiveWorkbook.Path, die zou de huidige working dir moeten geven. En daarbinnen moet dan idd nog een \Backup bestaan.

Zo scherp als een voetbal!

Pagina: 1