Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1880to1884
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

Adresse des Hyperlinks wird bei Export d

Adresse des Hyperlinks wird bei Export d
03.05.2022 14:27:14
Morgy
Hallo zusammen
Ich habe eine Excel, in der mittels VBA Hyperlinks gesetzt werden

Sub link_setzen(mcr As Integer, praefix as String)
Dim Dateipfad As String
Dim Nummer As String
Dateipfad = ActiveWorkbook.Path
Nummer = CStr(mcr - 1)
Dateipfad = Dateipfad & "\20" & Mid(ActiveSheet.Cells(11, 4), 5, 2) & "\"  & praefix & Format(Nummer, "000") & "\"
Range("D28").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=Dateipfad, TextToDisplay:="Ordner" & " " & ActiveSheet.Cells(11, 4).Value
Shell "explorer.exe" & " " & Dateipfad, vbNormalFocus
End Sub
Diese werden in der Excel auch korrekt gesetzt
Userbild
Wenn ich die Arbeitsmappe jetzt aber als PDF exportiere

Public Sub create_approved_pdf(praefix as String)
Dim Dateipfad As String
Dim Nummer As String
Dim timestamp
Dim day, month, year As String
Dateipfad = ActiveWorkbook.Path
Nummer = CInt(Right(ActiveSheet.Cells(11, 4), 3))
Dateipfad = Dateipfad & "\20" & Mid(ActiveSheet.Cells(11, 4), 5, 2) & "\" & Left(praefix, 4) & Mid(ActiveSheet.Cells(11, 4), 5, 2) & "-" & Format(Nummer, "000") & "\"
timestamp = Now
year = Mid(timestamp, 7, 4)
month = Mid(timestamp, 4, 2)
day = Mid(timestamp, 1, 2)
With ActiveSheet.PageSetup
.CenterHeader = ActiveSheet.Cells(11, 4)
.HeaderMargin = 0.5
.Orientation = xlPortrait
.PrintArea = "$B$2:$E$76"
'.PrintTitleRows = ActiveSheet.Cells(5, 5)
.Zoom = False
.FitToPagesTall = False
.FitToPagesWide = 1
End With
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=Dateipfad & CStr(year) & "-" & CStr(month) & "-" & CStr(day) & "-" & Left(praefix, 4) & Mid(ActiveSheet.Cells(11, 4), 5, 2) & "-" & Format(Nummer, "000") & ".pdf", _
IgnorePrintAreas:=False, _
IncludeDocProperties:=True, _
OpenAfterPublish:=True
End Sub
wird eine PDF erstellt, die auf den ersten Blick einwandfrei aussieht, aber einen Fehler aufweist, der Hyperlink in D28 wird falsch exportiert
Userbild
Man sieht, dass die Adresse des Hyperlinks (Unteradresse ab dem Dateispeicherpfad) doppelt angefügt wird und damit natürlich nicht aufrufbar ist.
Wie treibe ich Excel diese Flausen beim Export aus?
Gruß
Morgy

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Adresse des Hyperlinks wird bei Export d
03.05.2022 15:40:28
Michael
Hallo Morgy,
versuche mal herauszubekommen, was Du da für Texte zusammenbaust. Deine Definition von "Dateipfad" in der Sub link_setzen ist schon eine andere als in create_approved_pdf. Was dann in der Zeile Filename:= ... noch dazukommt, ist nicht klar, weil nicht bekannt ist, was bei Mid(ActiveSheet.Cells(11, 4), 5, 2) am Ende übrigbleibt (wahrscheinlich MCR, aber wer weiß das schon genau ;-).
Zur Anzeige von Variableninhalten geht z.B. eine MessageBox (MsgBox Dateipfad) oder im zur Anzeige im Direktfenster die Zeile "Debug.Print Dateipfad" im Code oder Du setzt im Code einen Haltepunkt und verharrst mit der Maus über der Variable bis im Tooltip steht, was sie beinhaltet.
VG Michael
Anzeige
AW: Adresse des Hyperlinks wird bei Export d
04.05.2022 09:03:07
Morgy
Hallo Michael
Ich machs mal mit Haltemarken und dem Überwachungsfenster
Der erste Dateipfad aus der link_setzen ist der Hyperlink, der in D28 eingefügt wird
Userbild
Der zweite Dateipfad ist derjenige, unter dem die PDF gespeichert werden soll
diese sind aber identisch
Userbild
Der Filename ist dann der zweite Dateipfad + Dateiname (Filename konnte ich nicht zur Überwachung hinzufügen, daher die Formel in der Überwachung)
Beide "Dateipfad" Variablen sind nicht public, daher in der nächsten Routine nicht mehr verfügbar, und der zweite Dateipfad (aus der create_apprpved_pdf sub) beschreibt ja den Speicherort der PDF, sollte inhaltlich also nichts mit dem Hyperlink zu tun haben.
Da sie identisch sind, beschreibt letzterer in der PDF, wo diese abgelegt ist (was dann sinnvoll wird, wenn in dem Ordner noch weitere Dokumente abliegen).
Noch kurz zum Syntax
MCR ist der Präfix (praefix), in der Cells 11,4 ist das Kalenderjahr der Erstellung und eine durchlaufende Nummer (22-001, 22-002 etc) daraus setzt sich dann MCR-22-011 zusammen.
Anzeige
Ein bug?
05.05.2022 13:18:38
Michael
Hallo Morgy,
das wäre nun der Moment der Bitte um eine Bespieldatei...aber ich hab das versucht nachzubauene, einfach zwei Ordner angelegt und die Pfade nicht wie Du zusammengebastelt, sondern fest ins VBA eingetragen.
Der Effekt: derselbe!
Beim manuellen "Speichern unter..." ist alles gut, mit dem Makro ist der Teil "\2022\MCR-22-011\" doppelt.
Das manuelle "Speichern unter..." als Makro aufgezeichnet, ergibt genau Deinen Code (bis auf die Konstruktion des Filenames natürlich).
Lass ich in link_setzen die Zeile

Dateipfad = Dateipfad & "\20" & Mid(ActiveSheet.Cells(11, 4), 5, 2) & "\"  & praefix & Format(Nummer, "000") & "\"
einfach weg, verlinkt Excel korrekt auf "D:\Dokumente\"
In der PDF wird auf "D:\Dokumente\2022\Dokumente" verlinkt. Wo hier jetzt noch die 2022 herkommt? Keine Ahnung.
Vor meinem Rückzug hier, noch schnell gegoogelt und erkannt, dass das die Welt schon seit Office 2010 beschäftigt. Diese Lösung hier
https://stackoverflow.com/questions/52878093/how-to-keep-all-hyperlinks-working-when-exporting-my-workbook-as-pdf-file
veranlasste mich in link_setzen(...) die Zeilen

Range("D28").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=Dateipfad, TextToDisplay:="Ordner" & " " & ActiveSheet.Cells(11, 4).Value 
in diese
ActiveSheet.Cells(28, 4).Formula = "=HYPERLINK(""D:\Dokumente\2022\MCR-22-011"", ""Ordner MCR-22-011"")"
zu ändern.
Das beschriebene Formatieren als Text ließ ich weg, denn dann zeigt Excel die Formel an und nicht deren Ergebnis.
Dann Ausführen von create_approved_pdf und tatsächlich, dann öffnet sich Dein Zielverzeichnis auch beim Klick auf den in die PDF-Datei exportierten Link.
VG Michael
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige