Anzeige
Archiv - Navigation
1696to1700
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

PDF öffnen

PDF öffnen
12.06.2019 08:11:41
Antonio
Hallo Gemeinde,
ich muss leider das Thema wieder aufgreifen da ich nicht weiter komme.
Code:

Private Sub ListBox2_Click()
Dim myLink As String
Dim TargetPage As Double
myLink = Verz & "\" & ListBox2.List(ListBox2.ListIndex, 1)
TargetPage = ListBox2.List(ListBox2.ListIndex, 2)
'    TargetPage = TextBox2   'Anzeige Seite
With WebBrowser1
'        .Navigate "about:blank"
.Navigate myLink & "#page=" & TargetPage
.Visible = True
End With
End Sub

bin schon 100 Male den Code durchgegangen und finde nichts.
Der Code sollte eine pdf seite im Webbrowser öffnen.
Ein Click in listbox2 macht die selektierte Seite auf.
Noch ein Click auf ein andere Item, passiert nichts.
Noch ein Click auf ein andre Item, wird der voherige aufgemacht, usw. es wird immer der voher angecklick Item aufgemacht.
Vielleicht merkt ihr etwas im Code das nicht stimmt.
Bin für jeden Tipp dankbar.
Vielen Dank im Voraus
Antonio

38
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PDF öffnen
12.06.2019 08:41:12
Martin
Hallo Antonio,
warum hast du TargetPage als Double statt als Integer deklariert? Kontrolliere mal noch, ob die ListBox wirklich valide Daten enthält:
Debug.Print myLink & "#page=" & TargetPage
Sonst habe ich es gerade bei mir getestet und es klappt wunderbar.
Viele Grüße
Martin
AW: PDF öffnen
12.06.2019 09:01:25
Antonio
Hallo Martin,
Danke für die Rückmeldung.
Hier mei Code für die ListBox:
Private Sub UserForm_Initialize()
ListBoxFuellen ListBox2, ThisWorkbook.Worksheets("Gesamt").Range("A1:C8500")
End Sub
Private Sub ListBoxFuellen(DieListbox As MSForms.ListBox, DerRange As Range)
With DieListbox
.ColumnCount = DerRange.Columns.Count
.List = DerRange.Value
End With
End Sub
TargetPage in Integer geändert: gleiche Scenario, die Seiten werden schon geöffnet aber immer beim zweiten click wird dann die voherige Seite geöffnet.
Noch ein Tipp?
Vielen Dank im Voraus
Antonio
Anzeige
AW: Bilder zum Verständniss
12.06.2019 09:55:46
Antonio
Bild 1 Seite passt:
Userbild
Bild 2 Neuer Titel Seite unverändert:
Userbild
Bild 3 Neuer Titel Vorherige Seite:
Userbild
Vielleicht wird durch die Bilder verständlicher.
Antonio
AW: PDF öffnen
12.06.2019 10:08:22
Martin
Hallo Antonio,
die Bezeichnung deiner Variablen ("DieListbox", "DerRange") finde ich echt witzig ;-)
Teste deinen Code doch mal auf einem anderen Rechner. Vielleicht liegt es am PDF-Viewer oder der Version des Internet Explorers. Einen Fehler kann ich jedenfalls nicht erkennen.
Jetzt kannst du eigentlich nur noch etwas herumprobieren. Zum Beispiel:
Private Sub ListBox2_Click()
Dim myLink As String
Verz = "C:" & Application.PathSeparator 'Anpassen!
With ListBox2
myLink = Verz & .List(.ListIndex, 1) & "#page=" & CInt(.List(.ListIndex, 2))
End With
With WebBrowser1
.Navigate myLink
.Refresh
End With
End Sub
Viele Grüße
Martin
Anzeige
AW: PDF öffnen
12.06.2019 10:23:27
Antonio
Hallo Martin,
ich danke dir sehr für deine Mühe, aber leider unverändert.
Überall Haltepunkt gesetzt, es stimmt alles, mit meinem Code und mit deinem Code.
Ich öffne die Pdf im WebBrowser aus der Toolbox, also was ganz simples.
Ich werde mein Foxit in die Einstellung schauen.
Mehr kommt mir auch nicht in den Sinn.
Ich lasse noch offen, vielleicht hat jemand eine andere Idee.
Trotzdem vielen Dank
Antonio
AW: PDF öffnen
12.06.2019 11:05:34
Martin
Hallo Antonio,
wie schon geschrieben, wir können jetzt nur herumraten. Versuche es mal so:
Private Sub ListBox2_Click()
Dim myLink As String
Dim Verz As String
Verz = "C:" & Application.PathSeparator 'Anpassen!
With ListBox2
myLink = Verz & Trim(.List(.ListIndex, 1)) & "#page=" & CInt(.List(.ListIndex, 2))
End With
With WebBrowser1
.Navigate ""
.Navigate myLink
End With
End Sub
Viele Grüße
Martin
Anzeige
AW: PDF öffnen
12.06.2019 10:14:03
Daniel
Hi
ohne Beispieldatei schwierig zu sagen.
Code sieht für mich passend aus.
Daher nur mal ne Vermutung:
Ist die Listbox vom Typ SingleSelect oder Multiselect?
SingleSelect wäre hier richtig, bei Multiselect-Listboxen funktionieren Click-Event und Listindex nicht unbedigt wie erwartet.
Gruß Daniel
AW: @ Daniel
12.06.2019 10:43:30
Daniel
nja, ohne die Dateien auch schwierig.
lass dir mal in einer TextBox den Linktext anzeigen.
ist das der gewünschte Link oder der alte?
wenns der gewünschte Link ist, wird dein Browser nicht aktualisiert und zeigt im Prinzip noch das alte Bild.
ggf hilft ein Me.Repaint, um die Userform neu zeichnen zu lassen. Gruß Daniel
Anzeige
AW: @ Daniel
12.06.2019 10:53:49
Antonio
Hallo Daniel,
nichts, unverändert. .....mmt
Wenn du möchtest can ich dir die 2 PDF zukommen lassen
Sag du mir wie und wo.
Antonio
AW: @ Daniel
12.06.2019 10:58:54
Daniel
Hi
wenn, hier im Forum.
was sagt die TextBox? angeklickter oder alter Link?
wäre wichtig zu wissen, obs ein Problem mit der Linkerstellung oder mit der Aktualisierung des Browsers ist.
Gruß Daniel
AW: @ Daniel
12.06.2019 11:03:12
Antonio
Also, der Link in TextBox stimmt.
Nur der Bleibt und "SPINNT" solang bis ich ein Titel aus ein andere Buch auswähle dann passt alles.
Ich meine 1. click im erste Buch pdf ist da
2. click im zweiten Buch pdf ist da
Die spinnerei passiert nur solang ich im selben Buch bleibe, das ist mir aufgefallen.
Hat mit der zusammensetzung vom Link zu tun?
Antonio
Anzeige
Sorry, da bin ich raus
12.06.2019 11:08:59
Daniel
Mit dem Browsersteuerelement und seiner Bedienung kenne ich mich nicht aus.
wenns mit einem neuen Buch funktioniert, dann probier doch mal als Workaround in zwei Steps zuerst ein beliebiges anderes Buch anzeigen zu lassen und dann erst das gewünschte?
dann hättest du auf jeden Fall den Buchwechsel und der funktionert ja.
Gruß Daniel
AW: Habe eine Lösung zuerst
12.06.2019 11:16:25
Antonio
Hallo Daniel,
ich habe eine Suche Funktion über eine Textbox. (wirst gemerkt haben)
Einfach nach einen Titel suchen
alle gleiche Titel werden aufgelistet
alle sind aber in verschiedene Bücher vorhanden (habe ca. 30 PDF Bücher)
und alle dieser Titel unterscheiden sich vom Performer, also jeder spielt anders.
Und nachdem ich 12 mal (ca.) ein titel habe und der Buch ist anders fuktioniert.
Danke dir für deine Mühe
Antonio
Anzeige
AW: Habe eine Lösung zuerst
12.06.2019 11:30:15
peterk
Hallo
Hab mal eine kleine Pause eingebaut, dann funktioniert auch der Seitenwechsel

With WebBrowser1
.Navigate myLink
Application.Wait (Now + TimeValue("0:00:02")) ' 2 Sekunden
.Refresh
End With

AW: Habe eine Lösung zuerst
12.06.2019 11:35:49
peterk
Hallo
Oder eleganter:

With WebBrowser1
.Navigate myLink
'Application.Wait (Now + TimeValue("0:00:02"))
Do While WebBrowser1.ReadyState  4
DoEvents
Loop
.Refresh
End With

AW: Habe eine Lösung zuerst
12.06.2019 11:45:37
Antonio
Hallo Peter,
danke dir auch,
aber bei mir ändert sich nichts, immer das gleiche szenario
@ nur myLink onhe TargetPage, macht immer seite 1 auf, wenn myLink & TargetPage geht von Vorne los, macht
erst beim nächste Click die vorherige Seit auf
@ trotz Refresh
Antonio
@ich würde euch 2 pdf Bücher senden sind aber mehr als 40MB, das wird hier in Forum nicht gehen.
Anzeige
AW: Habe eine Lösung zuerst
12.06.2019 11:49:58
peterk
Hallo
Ich verwende Acrobat als Default PDF player, was nimmst Du?
AW: Habe eine Lösung zuerst
12.06.2019 11:54:43
Antonio
Foxit Reader
AW: Acrobat Reader
12.06.2019 11:58:29
Antonio
geht auch nicht
Antonio
AW: Acrobat Reader
12.06.2019 12:14:20
peterk
Hallo
Hab leider keine FoxIt.
Wenn die Datei 80MB groß ist, wird das laden etwas dauern. Nimm statt Wait

Do While WebBrowser1.ReadyState  4
DoEvents
Loop

AW: Acrobat Reader
12.06.2019 12:30:12
Antonio
Hallo Peter,
keine Änderungen.
Aber, wie voher erwehnt:
die Bücher sind alle in einer Tabelle aufgelistet
jedes Buch hat ca. 400 Seiten
1_wenn ich bei einem Buch bleibe zB. seite 19, seite 49 u.s.w bleibt das Verhalten unverändert.
2_wenn ich aber jedesmal ein Titel in ein anderes Buch anclicke dann geht.
Könnte sein das es mit dem Link zu tun hat?
Im 1. Fall bleibt der Link unverändert nur die Seitennummer ändert sich
Im 2. Fall der Link ändert sich jedesmal
Könnte diese eine Ansatz sein oder ist irrilevant?
Antonio
Anzeige
AW: Wenn...
12.06.2019 12:43:09
Antonio
Wenn so sein sollte das der Link unverändert bleibt und somit "SCHULDIG"
Wie kann man das Programm zwingen den Link zu löschen und neu einlesen.
Wäre sozusagen immer ein neues Buch der angesprochen wird.
Bin ich richtig oder falsch mit meiner Denkweise?
Antonio
AW: Wenn...
12.06.2019 14:06:33
peterk
Hallo
Probier mal

With WebBrowser1
.Stop
Do While WebBrowser1.ReadyState  4
DoEvents
Loop
.Navigate myLink
Do While WebBrowser1.ReadyState  4
DoEvents
Loop
.Refresh
End With

AW: Wenn...
12.06.2019 14:20:24
Antonio
Hier die Links zu den Zwei Bücher:
https://www.pdfdrive.com/557-jazz-standards-e9903665.html
https://archive.org/details/fakebook_the-firehouse-jazz-band-fake-book
hier weiter unten unter Download Option -> PDF
So geht am schnellsten, es sind saubere Link
einfach in ein Ordner und
Const Verz = "C:\Users\a.mazza\Desktop\RB"

anpassen
Ich finde sowieso toll wie verbissen du bist, fast so wie ich
Antonio
@mit dem Code hat nicht geklappt
aber lade die Bücher runter dann siehst es besser
Anzeige
AW: Wenn...
12.06.2019 14:20:35
Daniel
schon mal Probiert:

With WebBrowser1
.Navigate "Link zu irgendeinem anderen vorhandenen Buch"
.Navigate myLink
.Refresh
End With
Gruß Daniel
AW: Wenn...
12.06.2019 14:32:57
Antonio
YES....
auch nicht
habe im thread davor 2 link zu den Bücher gepostet die
im excel schon aufgelistet sind und mit page nummer
probiers mal....es ist zum verzweifel
click ein paar mal im selben Buch schau was passiert
programm neustarten
click im ersten Buch dann im zweiten Buch schau was passiert
Antonio
@ Liebe Peter, Liebe Daniel, muss weg, bin morgen wieder online
AW: Guten Morgen
13.06.2019 06:47:18
Antonio
Hallo,
sorry das ich gestern weg musste.
Wollte nur wissen ob ihr es mit dem Bücher probiert habt.
Antonio
AW: Guten Morgen
13.06.2019 12:03:47
peterk
Hallo Antonio
Ich habs ausprobiert (sogar mit FoxIT ;-) ist aber etwas skurril. PDF wechsel klappt (zeigt auch die richtige Seite an) innerhalb eines PDF's "verschluckt" er aber den ersten Seitenwechsel und zeigt in Folge dann immer die vormals ausgewählte Seite an.
AW: Guten Morgen
13.06.2019 12:39:14
peterk
Hallo Antonio
Doch "Good news"
Füge folgendes im Header der Form ein
Option Explicit

Dim WBLoaded As Boolean
Const Verz = "C:\Users\..."

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
'Seite komplett geladen: 
    WBLoaded = True
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Und am Ende:
    WBLoaded = False

    With WebBrowser1
        .Navigate "about:blank"
        Do While Not WBLoaded
            DoEvents
        Loop
        .Document.writeln "<HTML><BODY> </BODY><HTML>"

        WBLoaded = False
        .Navigate myLink
        Do While Not WBLoaded
            DoEvents
        Loop

    End With

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0

Schaut zwar nicht schön aus, funktioniert aber ;-)
AW: ?
13.06.2019 14:09:36
Antonio
Hallo Peter,
verstehe nicht ganz....
das erste Teil habe im Code ganz oben.
Wo soll genau der zweite Teil hin....
Antonio
AW: ?
13.06.2019 14:10:16
Antonio
,
AW: ?
13.06.2019 14:16:45
peterk
Hallo Antonio
Private Sub ListBox2_Click()

    Dim myLink As String

    With ListBox2
        myLink = Verz & "\" & .List(.ListIndex, 1) & "#page=" & CInt(.List(.ListIndex, 2))
    End With
    
    With WebBrowser1
        WBLoaded = False
        .Navigate "about:blank"
        Do While Not WBLoaded
            DoEvents
        Loop
        .Document.writeln "<HTML><BODY> </BODY><HTML>"

        WBLoaded = False
        .Navigate myLink
        Do While Not WBLoaded
            DoEvents
        Loop
    End With
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


AW: EUREKA
13.06.2019 14:24:22
Antonio
.....also bin ganz baff....
Es sieht super aus das bisschen flimmern stört mich nicht
haupsache funzt.
Ich verstehe dein Code nur teilweise.
Ich glaube:
du lädst eine leere Seite,
schreibst ein Dummy Satz
dann lässt den WB wieder laden.
so in etwa.
Ich danke dir sehr, hatte jede Hoffnung verloren.
Antonio
AW: EUREKA
13.06.2019 14:24:53
Antonio
,
AW: EUREKA
13.06.2019 14:31:06
peterk
Hallo Antonio
Danke für die Rückmeldung, mit Deinen Annahmen liegst Du richtig. Durch die leere Seite wird FoxIT neu geladen und springt somit auf die richtige Seite.
AW: DANKE [owT]
13.06.2019 14:33:27
Antonio
.
AW: DANKE [owT]
13.06.2019 16:48:05
peterk
Hallo Antonio
Mit einem doppelten Aufruf geht flott und funktioniert auch
    With WebBrowser1
        WBLoaded = False
        .Navigate myLink
        Do While Not WBLoaded
            DoEvents
        Loop

        WBLoaded = False
        .Navigate myLink
        Do While Not WBLoaded
            DoEvents
        Loop
    End With

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige