Avatar billede soppdk Nybegynder
10. oktober 2009 - 16:14 Der er 11 kommentarer og
1 løsning

Vælg hvor den skal gemme.

Hej Alle,

Jeg har lavet en Faktura som via en knap gemmer i PDF med værdi fra 3 celler.

Private Sub CommandButton1_Click()
Dim filnave As String
Dim sti As String

filnavn = Range("e9") & " - " & Range("b5") & " - " & Range("b7").Value & ".pdf"
sti = "C:\"

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        sti & filnavn, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=True
End Sub

Den gemmer lige nu på c:\
Jeg kunne godt tænke mig at jeg via en Navi kunne vælge c:\test\1 og den så smider den i den mappe.

Nogle som har en ide her.
Den skal beholde fil navn som det script er lavet til.
Avatar billede excelent Ekspert
10. oktober 2009 - 17:32 #1
Definer minsti og tast =test\1\ i feltet Refererer til
Indsæt så denne lige efter >> sti="C:\" << i din kode

sti = sti & Application.WorksheetFunction.Substitute(Names("minsti"), "=", "")
Avatar billede soppdk Nybegynder
10. oktober 2009 - 20:49 #2
Hej og tak for dit svar.

Når jeg smider den ind
ser det sådan her ud

filnavn = Range("e9") & " - " & Range("b5") & " - " & Range("b7").Value & ".pdf"
sti = sti & Application.WorksheetFunction.Substitute(Names("minsti"), "=", "")

Når jeg køre den kommer den op med Run Time Error 1004
Application-defined or object-defined error

Hvad gør jeg galt ?
Avatar billede soppdk Nybegynder
10. oktober 2009 - 20:59 #3
Tror måske jeg har forklaret mig forkert til og starte med.

Det jeg ønsker er at når jeg trykker på min knap og den nu gemmer på C:\ så skal den i stedet kommer op med en navibox på samme måde som når man bruge Save AS så jeg kan gå til det drev eller mappe jeg ønsker.
men at den stadig selv skriver fil navn som min marko gør nu.

Giver det mening ?
Avatar billede excelent Ekspert
10. oktober 2009 - 21:41 #4
Indsæt følgende kode :

Private Type BROWSEINFO
  hOwner As Long
  pidlRoot As Long
  pszDisplayName As String
  lpszTitle As String
  ulFlags As Long
  lpfn As Long
  lParam As Long
  iImage As Long
End Type

Private Declare Function SHGetPathFromIDList Lib "Shell32.dll" Alias _
            "SHGetPathFromIDListA" (ByVal pidl As Long, _
            ByVal pszPath As String) As Long
           
Private Declare Function SHBrowseForFolder Lib "Shell32.dll" Alias _
            "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) _
            As Long
           
Private Const BIF_RETURNONLYFSDIRS = &H1
Public Function BrowseFolder(szDialogTitle As String) As String
  Dim X As Long, bi As BROWSEINFO, dwIList As Long
  Dim szPath As String, wPos As Integer
 
    With bi
        .hOwner = hWndAccessApp
        .lpszTitle = szDialogTitle
        .ulFlags = BIF_RETURNONLYFSDIRS
    End With
   
    dwIList = SHBrowseForFolder(bi)
    szPath = Space$(512)
    X = SHGetPathFromIDList(ByVal dwIList, ByVal szPath)
   
    If X Then
        wPos = InStr(szPath, Chr(0))
        BrowseFolder = Left$(szPath, wPos - 1)
    Else
        BrowseFolder = ""
    End If
End Function

-----------------------

Udskift så
sti = "C:\"
med
sti = BrowseFolder("Vælg stien til dine filer")
sti=sti & "\"

i din kode
Avatar billede soppdk Nybegynder
10. oktober 2009 - 21:53 #5
Jeg syntes den kode virker lidt stor til sådan en lille ting,
er det ikke muligt at bruge

Noget som det her

fileTosave = Filename

Flt = "Excel mappe(*.pdf),*.pdf,"
    Flt = Flt & "Print-filer (*.prn),*.prn,"
    Flt = Flt & "Tekst-filer(*.txt),*.txt"
    Titel = "Gem Faktura Som!"
    Filnavn = Application.GetSaveAsFilename(fileTosave, Flt, 1, Titel)
    If Filnavn = False Then GoTo Afbryd
    If fileTosave <> False Then
    ActiveWorkbook.SaveAs Filnavn
    End If
Afbryd:
End Sub

Denne kode gør det men den gemmer ikke min pdf ordenligt så der er fejl i den.

kan ikke helt få den til at sluge det her
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        sti & filnavn, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=True

som gør at den gemmer pdf ordenligt.

kan du hjælpe med at sætte det samme for mig ?
Avatar billede excelent Ekspert
10. oktober 2009 - 22:45 #6
Udskift
sti = "C:\"
med
Set x = Application.FileDialog(msoFileDialogFolderPicker)
x.Show
sti = x.SelectedItems(1)
sti = sti & "\"

i din oprindelige kode
Avatar billede soppdk Nybegynder
10. oktober 2009 - 23:07 #7
Har testet.

Den tager ikke min info med fra
filnavn = Range("e9") & " - " & Range("b5") & " - " & Range("b7").Value & ".pdf"

til fil navn
Avatar billede excelent Ekspert
10. oktober 2009 - 23:31 #8
nej det gør din egen kode jo
Avatar billede soppdk Nybegynder
10. oktober 2009 - 23:55 #9
Er du ikke venlig og skrive hele koden som den skal se ud til mig fra start til end , for jeg kan ikke få det til og virke selv.
Avatar billede excelent Ekspert
11. oktober 2009 - 08:00 #10
Når koden køres, skal du klikke dig frem til den mappe der skal gemmes i.

Private Sub CommandButton1_Click()
Dim filnave As String
Dim sti As String
Dim x As FileDialog

filnavn = Range("e9") & " - " & Range("b5") & " - " & Range("b7").Value & ".pdf"

Set x = Application.FileDialog(msoFileDialogFolderPicker)
x.Show
sti = x.SelectedItems(1)
sti = sti & "\"

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        sti & filnavn, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=True
End Sub
Avatar billede soppdk Nybegynder
11. oktober 2009 - 11:40 #11
Hej,

Det virker men den tager kun værdi fra Range("e9") den får ikke helt de sidste to med.
Avatar billede excelent Ekspert
11. oktober 2009 - 11:47 #12
ok
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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