Avatar billede ingeman Mester
12. februar 2025 - 15:42 Der er 14 kommentarer og
3 løsninger

VBA Excel

Er der nogen der har en fremgangsmåde på at lave
en Userform i Excel og tilføje den så den kan bruges
som PDF viewer ?
Skal bruges til at preview en PDF document fil
Avatar billede ebea Ekspert
12. februar 2025 - 16:53 #1
Userformen i sig selv, kan ikke bruges til at vise en PDF fil. Du skal bruge din standard PDF viser (typisk Adobe Reader), som du så kan kalde fra et eller andet i din userform, som kan være et link fra f.eks. en textbox.

Se koden herunder, som kalder det link til pdf filen, som vil fremgå af TextBox1. (ved hjælp af en knap (CommandButton1)), som du kan have i din UserForm.
Når det sker, åbner din standard PDF viser.

Private Sub CommandButton1_Click()
Dim myShell As Object
Set myShell = CreateObject("WScript.Shell")

  On Error GoTo ErrHndlr
    myShell.Run "C:\eksempel\pdf\filer\" & TextBox1.Value
  Exit Sub
ErrHndlr:
  MsgBox "Filen blev ikke fundet", vbExclamation
Avatar billede ingeman Mester
13. februar 2025 - 06:45 #2
Kan jeg ikke åbne PDF filen  i TextBox1 i stedet ? og undlade Userform ?
Avatar billede ebea Ekspert
13. februar 2025 - 07:40 #3
#2 - hvad konkret, går dit spørgsmål så på ? 😊
Avatar billede ingeman Mester
13. februar 2025 - 07:56 #4
Konkret ønsker jeg at åbne en PDF fil i Excel  - enten inde i en Textbox1 - eller i en Userform - det vindue der skal være skal relater til et range of cells - det skal ikke åbne i en seperat vindue.
Jeg har ledt på nettet - men har ikke fundet noget brugbart.
Avatar billede ingeman Mester
13. februar 2025 - 07:58 #5
Det handler om PDF viewer af en fil
Avatar billede ebea Ekspert
13. februar 2025 - 08:35 #6
#4 - du kan ikke åbne en PDF fil i selve Excel. Du kan som jeg skrev, lave et kald til at åbne PDF filen, fra Excel. Men det åbner filen i den standard PDF reader, du har.
Avatar billede ingeman Mester
13. februar 2025 - 08:50 #7
Øv.
Hvad med den her ?

Set MyBrowser = New SHDocVw.InternetExplorer
With MyBrowser
      .Visible = True
      .Toolbar = False
 
    End With

  MyBrowser.Navigate "\Kreditorbilag\20241128091756288.pdf"

Den her åbner et  nyt vindue - kan man på nogen måder tvinge den til at
være i relation placering på Excel arket feks en bestem Range("AM1")
Avatar billede ebea Ekspert
13. februar 2025 - 10:08 #8
#7 - Kernen i mine svar er, at Excel ikke har en PDF viewer funktion. Så uanset hvad, så skal du bruge en PDF viewer. DEN kan kaldes fra Excel, men visningen sker i PDF viewer’en.

Og det link du viser med din pdf fil, kan kaldes på den måde jeg skrev i mit første indlæg.
Jeg kan ikke se logikken i, at PDF filen, SKAL åbnes inde i Excel, da det vindue du skal læse filen i, alligevel vil fylde hele Excel vinduet. Så derfor åbn PDF filen i en viewer.
Avatar billede ingeman Mester
13. februar 2025 - 10:23 #9
Det var det jeg ville undgå med at den fyldte hele vinduet - da jeg har et bilagstruktur til venstre ligesom stifinder og ville have et vindue som kun fyldte det halve af Excel arket.
Avatar billede ebea Ekspert
13. februar 2025 - 10:55 #10
#9 - Du kan i en VBA kode, sætte størrelsen på det program der kaldes (PDF viewer'en), samt placeringen på skærmen, så du kan have den størrelse du foretrækker.
Avatar billede ebea Ekspert
13. februar 2025 - 16:03 #11
#9 - jeg kiggede lige i din profil. Og der kan jeg se, at du stillede nøjagtig det samme spørgsmål, i December 2024 https://www.computerworld.dk/eksperten/spm/1044611
Og det spørgsmål står stadig åbent.

Så hvorfor oprette et nyt, når du end ikke har lukket det gamle spørgsmål ?

Det er jo totalt spild af andres tid, når der er personer der bruger tid på at besvare dine spørgsmål, og du end ikke reagerer.
Du har 5 åbne spørgsmål, og ikke ét eneste af disse, har du afsluttet (lukket). Så for god ordens skyld, så luk dine spørgsmål.

At du ikke har kunne bruge svarene, kan der være flere årsager til, men folk skal generelt ikke bruge tid på spørgsmål, som brugerne ikke gider/vil besvare, eller lukke.

Så nu er opfordringen givet, her fra.
Avatar billede ingeman Mester
13. februar 2025 - 17:10 #12
Hvordan lukker man den - uden "Maker som løsning"
Avatar billede ebea Ekspert
13. februar 2025 - 17:18 #13
#12 - Det kan du ikke. Men du kan vælge et svar, og markere det som løsningen. Enten det så er dit eget, eller et andet svar.
Avatar billede MaxZpaD Guru
14. februar 2025 - 08:26 #14
Hej ingeman

Kunne nedenstående mon være en mulighed?

Sub PDF_preview_in_Excel()
    Dim my_PDF As Object
    Dim PDF_path As String
    PDF_path = "C:\Documents\PDF\Filename.pdf"
    Set my_PDF = Me.Sheets(1).OLEObjects.Add(Filename:=PDF_path, Link:=False, DisplayAsIcon:=False)
End Sub

Eneste lille hage er, at hvis PDF-filen har mere end én side, så skal du alligevel dobbelt-klikke på objektet/billedet for at åbne i en rigtig PDF-fremviser.
Avatar billede ingeman Mester
14. februar 2025 - 11:10 #15
Hej,

Hvordan for man den placeret et bestemt sted på arket ?
Avatar billede ingeman Mester
14. februar 2025 - 11:30 #16
ActiveSheet.OLEObjects.Add( _
                                        Filename:=strFileName, _
                                        Link:=False, _
                                        DisplayIcon:=False, _
                                        IconFileName:=strFileName, _
                                        IconIndex:=0, _
                                        IconLabel:=strShortName, _
                                        Top:=Range("I5").Top, _
                                        Left:=Range("I5").Left, _
                                        Width:=10, _
                                        Height:=10)
Avatar billede MaxZpaD Guru
14. februar 2025 - 11:44 #17
#16 - Ja, det var lige netop noget i den stil, jeg var ved at foreslå :-D
med Range("XX").Top og .Left
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
Stort udvalg af Excel kurser til alle niveauer og jobfunktioner

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





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis