» »

Iz Excela v .pdf z VBA ukazom

Iz Excela v .pdf z VBA ukazom

borzon ::

Pozdravljeni,

Potrebujem vašo pomoč pri mojem neznanju.
Ker sam nimam pojma kako to naredit se na vas obračam po pomoč.

Imam Sleet1 in sheet3. Na Sheet1 imam gumb. Rad bi, da ko kliknem na gumb, da bi se iz sheet3 v pdf shranile samo celice od A1:E20. Med samim potekom shranjevanja, naj bi program uprašal za lokacijo shranjevanja in ime novega pdf dokumenta.
A je mogoče požel že kaj takega?

Hvala za pomoč

kljuka13 ::

Predlagam, da za začetek posnameš makro, ki izvede opisano zaporedje dejanj. Makro pa lahko nato dodatno prilagodiš v VBA, tako da recimo dodaš okence za izbiro lokacije shranjevanja.

korenje3 ::

Izrezek iz enega mojih programov.

    Select Case cellinfo(0)
    Case "PDF"
        btn.TextFrame.Characters.Text = "SAVE PDF (" & cellinfo(1) & ")"
        filename = Opt.FilePickerSave("PDF")
        If LenB(filename) > 0 Then
            Call RngTotal.ExportAsFixedFormat(Type:=xlTypePDF, filename:=filename)
            If LenB(pdfmaildata(1)) > 0 Then ActiveWorkbook.FollowHyperlink filename
        End If
    Case "PDFF"
        btn.TextFrame.Characters.Text = "SAVE PDF (" & cellinfo(1) & ")"
        Call RngTotal.ExportAsFixedFormat(Type:=xlTypePDF, filename:=IIf(LenB(pdfmaildata(0)) > 0, pdfmaildata(0), RngTotal.Parent.Parent.Path & "\" & Opt.GetFilenameExt(RngTotal.Parent.Parent.Name)(0) & ".PDF"))
        If LenB(pdfmaildata(1)) > 0 Then ActiveWorkbook.FollowHyperlink IIf(LenB(pdfmaildata(0)) > 0, pdfmaildata(0), RngTotal.Parent.Parent.Path & "\" & Opt.GetFilenameExt(RngTotal.Parent.Parent.Name)(0) & ".PDF")
    Case "XPS"
        btn.TextFrame.Characters.Text = "SAVE XPS (" & cellinfo(1) & ")"
        filename = Opt.FilePickerSave("XPS")
        If LenB(filename) > 0 Then
            Call RngTotal.ExportAsFixedFormat(Type:=xlTypeXPS, filename:=filename)
            If LenB(pdfmaildata(1)) > 0 Then ActiveWorkbook.FollowHyperlink filename
        End If
    Case "XPSF"
        btn.TextFrame.Characters.Text = "SAVE XPS (" & cellinfo(1) & ")"
        Call RngTotal.ExportAsFixedFormat(Type:=xlTypeXPS, filename:=IIf(LenB(pdfmaildata(0)) > 0, pdfmaildata(0), RngTotal.Parent.Parent.Path & "\" & Opt.GetFilenameExt(RngTotal.Parent.Parent.Name)(0) & ".XPS"))
        If LenB(pdfmaildata(1)) > 0 Then ActiveWorkbook.FollowHyperlink IIf(LenB(pdfmaildata(0)) > 0, pdfmaildata(0), RngTotal.Parent.Parent.Path & "\" & Opt.GetFilenameExt(RngTotal.Parent.Parent.Name)(0) & ".XPS")
    Case "P"
        btn.TextFrame.Characters.Text = "PRINT PREVIEW (" & cellinfo(1) & ")"
        Call RngTotal.PrintPreview
    Case "PF"
        btn.TextFrame.Characters.Text = "PRINT (" & cellinfo(1) & ")"
        Call RngTotal.PrintOut
    Case "M", "MF"
        btn.TextFrame.Characters.Text = "SEND E-MAIL (" & cellinfo(1) & ")"
        AWB.EnvelopeVisible = True
        With RngTotal.Parent.MailEnvelope
            '.Introduction = "XXX"
            With .item
                .To = pdfmaildata(0)
                '.CC = ""
                '.BCC = ""
                .Subject = pdfmaildata(1)
                On Error Resume Next
                For i = 1 To .attachments.Count
                    .attachments.Remove 1
                Next
                For i = 0 To UBound(attachments)
                    If LenB(attachments(i)) > 0 Then .attachments.Add attachments(i)
                Next
                If cellinfo(0) = "MF" Then
                    If Err.Number = 0 Then .Send
                End If
            End With
        End With
    End Select


Še file picker. vidim da je notri.

Public Function FilePickerSave(Optional ByVal FileType As String = vbNullString, Optional ByVal InitialFileName As String = vbNullString)
    With Application.FileDialog(MsoFileDialogType.msoFileDialogSaveAs)
        .AllowMultiSelect = False
        .ButtonName = "Save"
        .Title = "Save File"
        Dim i As Integer
        For i = 1 To .Filters.Count
            If InStr(UCase(.Filters.item(i).extensions), "*." & UCase(FileType)) > 0 Then .FilterIndex = i: Exit For
        Next
        If LenB(InitialFileName) = 0 Then
            .InitialFileName = bomfix.AWB.Path & "\" & GetFilenameExt(bomfix.AWB.Name)(0) & IIf(LenB(FileType) > 0, "." & FileType, vbNullString)
        Else
            .InitialFileName = InitialFileName
        End If
        .InitialView = msoFileDialogViewDetails
        Call .Show
        If (.SelectedItems.Count > 0) Then
            FilePickerSave = .SelectedItems(1)
        End If
    End With
End Function
i9-12900k; 32GB DDR5-6000 CL36; Nvidia RTX 3080 ti;
Gigabyte Aorus z690 master; Be Quiet Dark Power 12 1000W

Zgodovina sprememb…

  • spremenil: korenje3 ()

mr_chai ::



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

VBA vrednosti sheet-ov v nov excel file

Oddelek: Programiranje
5571 (395) DostMam
»

Excel 2016 - kako z vlečenjem dol dobiti vrednosti istih celic iz več listov

Oddelek: Pomoč in nasveti
5417 (343) jedateruk
»

Pomoč Excel

Oddelek: Programska oprema
136202 (5889) mk766321
»

excel

Oddelek: Programska oprema
71699 (1600) imagodei
»

[VB] excel makro, VB program ali kaj drugega

Oddelek: Programiranje
52267 (2267) Tutankhamun

Več podobnih tem