Avatar billede denero Juniormester
12. december 2007 - 09:35 Der er 20 kommentarer og
2 løsninger

SaveAs i word

Jeg har fundet følgende kode til at sætte filnavnet i SaveAs boksen. Jeg klipper den ud fra et givent sted i dokumentet og forsøger så, at få udklipsholderen til at sætte navnet, hvorefter jeg manuelt skal trykke gem (kontrol), men følgende fejlmeddelelse kommer op. Hvad gør jeg forkert?

Run-time error ’5487’:

En fuld lagring kunne ikke gennemføres på grund af fejl i forbindelse med adgangen til filen.

..og her er koden:

Sub SaveAsMedNavn()
'
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Copy

Dim strTemp As String
strTemp = Selection
 
    ActiveDocument.SaveAs FileName:=strTemp, _
        FileFormat:=wdFormatDocument, LockComments:=False, Password:="", _
        AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
        :=False, SaveAsAOCELetter:=False
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
End Sub
Avatar billede supertekst Ekspert
12. december 2007 - 11:07 #1
Du får uden tvivl et linieskift/afsnitskift med i din markering

Prøv følgende rettelse:

strTemp = Left(Selection, Len(Selection) - 1)
Avatar billede denero Juniormester
12. december 2007 - 13:25 #2
Det virker, men jeg får ikke dialogboksen "Gem som" frem således, at jeg kan "godkende" filnavnet inden jeg gemmer og hvis jeg senere gemmer igen, overskriver den bare filen med de evt. nye ændringer.
Avatar billede supertekst Ekspert
12. december 2007 - 15:16 #3
Prøver at finde en løsning
Avatar billede supertekst Ekspert
12. december 2007 - 17:54 #4
'Jeg har fundet følgende kode til at sætte filnavnet i SaveAs boksen. Jeg klipper den ud fra et givent sted i dokumentet og forsøger så, at få udklipsholderen til at sætte navnet, hvorefter jeg manuelt skal trykke gem (kontrol), men følgende fejlmeddelelse kommer op. Hvad gør jeg forkert?
'Run-time error ’5487’:
'En fuld lagring kunne ikke gennemføres på grund af fejl i forbindelse med adgangen til filen.
Sub SaveAsMedNavn()
Dim fs, svar, dok
Dim strTemp As String

    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Selection.Copy

    strTemp = Left(Selection, Len(Selection) - 1)
   
    Set fs = CreateObject("Scripting.FileSystemObject")

    If fs.fileexists(strTemp + ".doc") = False Then
        gemDocument strTemp
    Else
        Set sti = fs.getfile(strTemp + ".doc")
        svar = MsgBox(sti.Path + strTemp + ".doc findes i forvejen - overskrives?", vbYesNo)
        If svar = 6 Then
            gemDocument strTemp
        End If
    End If
End Sub
Private Sub gemDocument(strTemp)
    ActiveDocument.SaveAs FileName:=strTemp, _
        FileFormat:=wdFormatDocument, LockComments:=False, Password:="", _
        AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
        :=False, SaveAsAOCELetter:=False
       
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
End Sub
Avatar billede denero Juniormester
12. december 2007 - 19:19 #5
Jeg ved ikke hvad der er sket, men ser dit svar ikke lidt underligt ud?
Avatar billede supertekst Ekspert
12. december 2007 - 22:53 #6
Det er din oprindelige indledning, der er i begyndelsen af koden - det var ikke meningen.

Jeg har kopieret hele dit første indlæg ind i VBA - derfor.
Avatar billede denero Juniormester
13. december 2007 - 19:42 #7
Undskyld ventetiden!
Det ser ud til du har 2 makroer
???
Eller ser dit svar således ud?

Sub SaveAsMedNavn()
Dim fs, svar, dok
Dim strTemp As String

    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Selection.Copy

    strTemp = Left(Selection, Len(Selection) - 1)
   
    Set fs = CreateObject("Scripting.FileSystemObject")

    If fs.fileexists(strTemp + ".doc") = False Then
        gemDocument strTemp
    Else
        Set sti = fs.getfile(strTemp + ".doc")
        svar = MsgBox(sti.Path + strTemp + ".doc findes i forvejen - overskrives?", vbYesNo)
        If svar = 6 Then
            gemDocument strTemp
        End If
    End If
End Sub

og kan jeg sætte denne mappehenvisning på - evt. hvor

    ChangeFileOpenDirectory "C:\Documents and Settings\pom\Skrivebord\"
    ActiveDocument.SaveAs FileName:=strTemp, _
        FileFormat:=wdFormatDocument, LockComments:=False, Password:="", _
        AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
        :=False, SaveAsAOCELetter:=False
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
Avatar billede supertekst Ekspert
13. december 2007 - 20:33 #8
OK m/ventetid - vi har jo også andet, der skal passes.
Vil du hellere have ChangeFileOpenDirectory ....... m.v. inkluderet?

Dette er makroen p.t. - med 2 Sub's:

Sub SaveAsMedNavn()
Dim fs, svar, dok
Dim strTemp As String

    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Selection.Copy

    strTemp = Left(Selection, Len(Selection) - 1)
   
    Set fs = CreateObject("Scripting.FileSystemObject")

    If fs.fileexists(strTemp + ".doc") = False Then
        gemDocument strTemp          'kald af Sub gemDocument *)
    Else
        Set sti = fs.getfile(strTemp + ".doc")
        svar = MsgBox(sti.Path + strTemp + ".doc findes i forvejen - overskrives?", vbYesNo)
        If svar = 6 Then
            gemDocument strTemp      '-"- *)
        End If
    End If
End Sub

Private Sub gemDocument(strTemp)
    ActiveDocument.SaveAs FileName:=strTemp, _
        FileFormat:=wdFormatDocument, LockComments:=False, Password:="", _
        AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
        :=False, SaveAsAOCELetter:=False
       
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
End Sub
Avatar billede denero Juniormester
14. december 2007 - 08:27 #9
Vil du hellere have ChangeFileOpenDirectory ....... m.v. inkluderet?

Ja- det vil jeg gerne, da jeg så også kan betemme/ændre mappe, hvor filen skal ligge og se filnavnet inden jeg gemmer.
Avatar billede supertekst Ekspert
14. december 2007 - 11:17 #10
Den korte version:

Sub SaveAsMedNavn()
Dim strTemp As String
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Selection.Copy

    strTemp = Left(Selection, Len(Selection) - 1)
   
    ChangeFileOpenDirectory "C:\Documents and Settings\pom\Skrivebord\"
    Set dia = Dialogs(wdDialogFileSaveAs)
        dia.Name = strTemp
        dia.Show
       
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
End Sub
Avatar billede denero Juniormester
14. december 2007 - 13:49 #11
Nu er det fint, men den overskriver, hvis man gemmer igen med samme filnavn
Avatar billede supertekst Ekspert
14. december 2007 - 15:14 #12
Ok - så indsætter vi den tidligere kontrol ind igen.
Avatar billede supertekst Ekspert
14. december 2007 - 15:20 #13
Men - er det evt. ikke tilstrækkeligt at man bliver advaret, hvis filen findes i forvejen og derved mulighed for at overskrive eller gemme under andet navn/placering??
Avatar billede denero Juniormester
14. december 2007 - 17:39 #14
Det lyder rigtigt, men jeg er vist stået helt af. Kan du ikke vise mig helt præcist, hvad jeg gør?
Avatar billede supertekst Ekspert
14. december 2007 - 18:19 #15
Const sti = "C:\Documents and Settings\pom\Skrivebord\" 
Sub SaveAsMedNavn()
Dim strTemp As String, fs
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Selection.Copy

    strTemp = Left(Selection, Len(Selection) - 1)
   
    Set fs = CreateObject("Scripting.FileSystemObject")

    If fs.fileexists(sti + strTemp + ".doc") = True Then
        MsgBox (strTemp + " eksisterer i forvejen")
        strTemp = "???"
    End If
   
    ChangeFileOpenDirectory sti
    Set dia = Dialogs(wdDialogFileSaveAs)
        dia.Name = strTemp
        dia.Show
       
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
End Sub
Avatar billede denero Juniormester
15. december 2007 - 10:11 #16
Det virker ikke. Du har en linie udenfor Sub`en - skal den være der?
Avatar billede supertekst Ekspert
15. december 2007 - 10:44 #17
Skulle ikke betyde noget - flyt den blot indenfor - eftersom der nu kun er en Sub.
Avatar billede denero Juniormester
15. december 2007 - 11:11 #18
Kanon - det funker.Ligger du et nyt svar eller skal jeg give point på dit tidligere svar?
Avatar billede supertekst Ekspert
15. december 2007 - 17:43 #19
Fint at det lykkedes - du får et svar
Avatar billede denero Juniormester
16. december 2007 - 10:12 #20
Hej igen. Har jeg givet dig point?
Avatar billede supertekst Ekspert
16. december 2007 - 12:58 #21
Nej..
Avatar billede denero Juniormester
16. december 2007 - 22:45 #22
Jeg er ret ny i det her - hvordan er det lige jeg giver dig point.
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
Tag et kursus i Word og øg effektiviteten

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