Avatar billede jersing Nybegynder
28. juni 2001 - 09:43 Der er 15 kommentarer

Path i ExcelVBAs SaveAS dialogboks

Hejsa
Jeg har problemer med Excel.
Jeg skal have styret path på plads i forbindelse med det at gemme.
Jeg har prøvet at ændre current directory, men det virker ikke i forbindelse med denne dialogboks.

Hjælp!!



Avatar billede janvogt Praktikant
28. juni 2001 - 09:50 #1
Prøv at lægge følgende kode i en procedure og læg den evt. på en knap:

Dim iSvar as Integer

iSvar = MsgBox(\"Ønsker du at gemme dit arbejde?\",vbYesNo)
If iSvar = vbYes Then
  ApplicationDialogs(xlDialogSaveAs).Show
End If
Avatar billede janvogt Praktikant
28. juni 2001 - 09:58 #2
SaveAs benyttes når brugeren selv skal have mulighed for at bestemme, hvor filen skal ligge. Hvis du allerede kender, hvor filen skal ligge må det være en anden dialogboks du skal have fat i.

Eller er dit problem, at brugeren selv skal bestemme filnavnet, men SaveAs dialogboksen standard skal komme op med det directory, hvori filen skal gemmes?
28. juni 2001 - 10:05 #3
\'Skift standard bibliotek
ChDir \"D:\\Temp\"

\'Start dialogboksen SaveAs
Application.Dialogs(xlDialogSaveAs).Show
28. juni 2001 - 10:06 #4
ChDir er altså den commando, som ændre CurDir :-)
Avatar billede jersing Nybegynder
28. juni 2001 - 10:24 #5
Jeg uddyber lige lidt.
Det er et krav fra kunden at selve gemningen sker via dialogboksen SaveAs.
Det er så op til brugeren at benytte denne boks, med de faciliteter der allerede ligger indbygget.
Det er dog centralt at jeg fra programmets side styrer hvor Gem forsøger at placerer filen.

FlemmingDahl\'s forslag virker ikke, det var prøvet før jeg indlagde dette på nettet.
Jeg er i øvrigt opmærksom på forskellen mellem ChDir og Curdir. Jeg nævnte CurDir for at illustrere at jeg allerede havde skiftet til det ønskede bibliotek, blot uden effekt
28. juni 2001 - 10:31 #6
Disse to linier virker helt perfekt hos mig både i Excel97 og Excel2000. Jersing du må gøre noget forkert...!

Prøv blot at lave denne lille Sub

Sub TestSaveAsDir()
    ChDir \"C:\\Windos\\Font\"
    Application.Dialogs(xlDialogSaveAs).Show
End Sub

Det er vigtigt ved brug af ChDir, at du IKKE afslutter med en \\. Så hvis du skal have CurDir til at være C:\\ så skal ChDir kun være \"C:\"
Måske det er det, som er gået galt ?!?
28. juni 2001 - 10:32 #7
Windos => Windows ....hmmm - shit happens!!
Avatar billede jersing Nybegynder
28. juni 2001 - 10:54 #8
Hej flemmingdahl
Din kode virker i et \"jomfrueligt\" regneark. Men prøv lige at gem filen et andet sted og følg så din egne vejledning.
Hvis filen har været gemt et andet sted først vil den STÆDIGT hænge fast i det bibliotek den tidligere har været gemt i, med mindre det \"rammes\" og ændres i eller før dialogboksen åbnes!
Avatar billede janvogt Praktikant
28. juni 2001 - 13:36 #9
Hos mig holder den IKKE fast ved det bibliotek den tidligere har været gemt i - også selv om jeg gemmer filen et andet sted og genopstarter Excel. Jeg bruger forøvrigt Excel 97.
28. juni 2001 - 13:46 #10
>>>jersing - du har delvis ret.

ChDir virker fint hos mig, hvis det er på samme drev eks. filen er gemt i C:\\Dokumenter og jeg bruger ChDir C:\\Temp = OK

Hvis jeg vil have den over på F:\\Temp, så skal jeg først skifte drev eks.
ChDrive \"F\"
ChDir \"F:\\Temp\"

Så virker begge udgaver fint hos mig - måske det er det sidste, som du har gang i  ?
Avatar billede jersing Nybegynder
28. juni 2001 - 17:08 #11
Hej Flemming. Nej den problemstilling har jeg lært helt tilbage til gamle Excelmakroer version ? 1.01 tror jeg nok.
Der må være noget helt andet. Hvis du gider er du mere end velkommen til at ringe. Jeg har tlf 5599 3435.
Avatar billede jersing Nybegynder
29. juni 2001 - 01:31 #12
ØV, selv ved kreative forsøg med at gemme som skabelon og sætte ISaddIn til True, vil den stadig gemme en fil i det bibliotek den før har været i uanset hvad jeg gør.
Har filen ikke været gemt kører ovenstående løsninger fint. (derfor trorde jeg jeg var færdig, men nej!)
29. juni 2001 - 10:33 #13
Løsning sendt med en workaround via GetSaveAsFileName
Avatar billede janvogt Praktikant
29. juni 2001 - 14:32 #14
Jeg fandt følgende på nettet, måske er det løsningen på problemet?

If you just want to retrieve a filename from the user that you want to use later to open or save a workbook, you can use the GetOpenFilename or GetSaveAsFilename methods. Both methods displays their respective dialogs, but the don\'t open or save the file when the user confirms the dialog. The methods instead returns the complete filename to the file the user wants to open or save.

FullFileName = Application.GetOpenFilename(\"Excel files (*.xl*),*.xl*\", 1, \"Custom Dialog Title\", , False)
FullFileName = Application.GetSaveAsFilename(\"DefaultFilename.xls\", \"Excel files (*.xl*),*.xl*\", 1, \"Custom Dialog Title\")
The result can be used any way you want to. You can later open a selected workbook like this:

Workbooks.Open FullFileName
Or you can save a workbook like this:

ActiveWorkbook.SaveAs FullFileName
When the user has confirmed the FileOpen dialog or the FileSaveAs dialog, he/she might also have changed the active or current folder, so I often use these two methods as a simple approach to let the user select a folder.
17. december 2001 - 02:21 #15
jersing>> blev dette løst ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester