Toon posts:

{VB/Excel] saveas dialog cancel knop

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste tweakers,

Ik ben bezig om een macro te maken die automatisch naar een sharepoint site toe connect zodat je daar je file kan opslaan.

Als je de macro runt krijg je een listbox te zien met alle sharepoint sites. Als je er eentje selecteert gaat hij kijken of hij er naar toe kan connecten. Zo niet dan stopt hij er mee zo ja dan krijg je de SaveAs dialog te zien. Als je in de SaveAs dialog zit en je drukt op de knop CANCEL dan wilt hij hem alsnog op gaan slaan als FALSE.xls in een map. Dit is niet de bedoeling ik zou graag willen zien dat als de gebruiker op de CANCEl knop drukt dat hij de procedure dan afkapt. Ik ben niet zo heel erg bekend met Visual Basic.

De Code:

Application.DefaultFilePath = Link
If Application.DefaultFilePath = Link Then
On Error Resume Next
ActiveWorkbook.SaveAs (Application.GetSaveAsFilename(Link))
End If

  • Twilight Burn
  • Registratie: Juni 2000
  • Laatst online: 29-04 11:55
Ik weet niet hoe het in VBA zit, maar normaal gesproken krijg je bij het commando om de dialoog te openen, als return value terug op welke knop de gebruiker heeft gedrukt. Je kunt dan iets doen als (ongetest en uit het hoofd!):
Visual Basic:
1
2
3
If dlgSave.Open = vbOk Then
.....
End If

Verwijderd

Topicstarter
Ik kan de de statement: ActiveWorkbook.SaveAs (Application.GetSaveAsFilename(Link))
niet in een If statement zetten. Dan komt met een error.

Verwijderd

Verwijderd schreef op vrijdag 28 januari 2005 @ 11:11:
Ik kan de de statement: ActiveWorkbook.SaveAs (Application.GetSaveAsFilename(Link))
niet in een If statement zetten. Dan komt met een error.
Dat klopt. ActiveWorkbook.SaveAs is namelijk een procedure. Maar gelukkig is Application.GetSaveAsFilename een functie. Als je er nu nog niet uitkomt is het handig als je je eerst in de syntax van VBA verdiept.

Verwijderd

Topicstarter
Ehmz nou ik kom er echt niet uit zijn er nog meer hintjes?

Verwijderd

eerst het resultaat van de getsaveasfilename in een variabele steken
als deze in orde is, dan de saveas uitvoeren, anders niets (niet getest):
code:
1
2
3
4
5
6
7
8
9
sub t()
  dim bn as variant
  bn=Application.GetSaveAsFilename(Link))
  if bn<>False then
    ActiveWorkbook.SaveAs bn
  else
    msgbox "opslagactie afgebroken!"
  end if
end sub
Pagina: 1