Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

URL aus Excel im Browser öffnen und PDF erzeugen
#1
Hallo,

ich habe folgendes Problem zu lösen:

Ich habe eine Excel Tabelle in der in einer Spalte mehrere URL zu Google Maps stehen.
Ich möchte gerne automatisiert jede URL im Browser öffnen und von dem Routenplan eine PDF erstellen lassen.
Ist dies irgendwie möglich? Meine VBA Kenntnisse reichen dafür leider im Moment noch nicht aus.

Vielen Dank!
Antworten Top
#2
Hallo!

Kleines Beispiel. Die URLs stehen hier in Spalte B ab Zeile 2.

Wichtig: Einen Verweis auf die Microsoft Internet Controls setzen.

Option Explicit

Public Sub OpenAndPrintURL()

Dim IEApp         As Object
Dim strURL        As String
Dim lngUrlCount   As Long
Dim lngLastCell   As Long

      
      Rem Letzte Zeile in Spalte ermitteln 
      lngLastCell = Range("B" & Rows.Count).End(xlUp).Row
      
      Rem Systemdrucker auf "PDF-Creator" setzen 
      Shell "rundll32 printui.dll,PrintUIEntry /y /n PDFCreator"
      
      Rem Schleife beginnen 
      For lngUrlCount = 2 To lngLastCell
      
          Rem IE-Session starten 
          Set IEApp = CreateObject("InternetExplorer.Application")

              Rem Seiten ausgeben. 
              With IEApp
                  .Visible = True
                  .Navigate (Cells(lngUrlCount, 2)) 'Zur Internetseite 
                  .ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, 0, 0 'Internetseite drucken 

                    Do While .busy
                       DoEvents
                    Loop
               
               .Quit ' IE schließen 
          End With
          
          Rem Browser-Session beenden 
          Set IEApp = Nothing
          
      Next lngUrlCount
      
      Rem Systemdrucker wiederherstellen 
      Shell "rundll32 printui.dll,PrintUIEntry /y /n ""Samsung ML-2850 Series"""
      
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 16 - mit VBAHTML 12.6.0


Gruß, René
[-] Folgende(r) 1 Nutzer sagt Danke an mumpel für diesen Beitrag:
  • Michael05
Antworten Top
#3
Entschuldigung für die späte Antwort.
Danke für den Code. Er hat mir sehr geholfen. Ein paar Änderungen habe ich vorgenommen.

Eine Frage habe ich noch.
Ist es möglich den Dateinamen für die erstellte PDF festzulegen? Bisher nimmer er die URL.
Den Dateinamen, der verwendet werden soll, würde ich in eine Spalte hinter der URL schreiben.

Code:
Public Sub OpenAndPrintURL()

Dim IEApp         As Object
Dim strURL        As String
Dim lngUrlCount   As Long
Dim lngLastCell   As Long
Dim Standarddrucker As String

Const Spalte_mit_URL_als_Zahl = 1
Const Spalte_mit_URL_als_Buchstabe = "A"

      'Standarddrucker zwischenspeichern
      Standarddrucker = ActivePrinter
      
      Rem Letzte Zeile in Spalte ermitteln
      lngLastCell = Range(Spalte_mit_URL_als_Buchstabe & Rows.Count).End(xlUp).Row
      
      Rem Systemdrucker auf "PDF-Creator" setzen
      Shell "rundll32 printui.dll,PrintUIEntry /y /n PDFCreator"
     
      Rem Schleife beginnen
      For lngUrlCount = 1 To lngLastCell
      
          Rem IE-Session starten
          Set IEApp = CreateObject("InternetExplorer.Application")

              Rem Seiten ausgeben.
              With IEApp
                  .Visible = False
                  .Navigate (Cells(lngUrlCount, Spalte_mit_URL_als_Zahl)) 'Zur Internetseite
                  
                  'Kurze Wartezeit
                  Application.Wait Now + TimeSerial(0, 0, 5) 'wartet x Sekunden
                  
                  .ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, 6, 2 'Internetseite drucken

                    Do While .busy
                       DoEvents
                    Loop
               
               .Quit ' IE schließen
          End With
          
          Rem Browser-Session beenden
          Set IEApp = Nothing
          
      Next lngUrlCount
      
      'Standarddrucker wieder einstellen
      Shell "rundll32 printui.dll,PrintUIEntry /y /n " & Standarddrucker
            
End Sub
Antworten Top
#4
Hi,

(03.06.2017, 17:41)Michael05 schrieb: Eine Frage habe ich noch.
Ist es möglich den Dateinamen für die erstellte PDF festzulegen? Bisher nimmer er die URL.
Den Dateinamen, der verwendet werden soll, würde ich in eine Spalte hinter der URL schreiben.

z.B. so:
Code:
'Druck als PDF (Name aus D3 in Tabelle1)
   ThisWorkbook.ExportAsFixedFormat xlTypePDF, "C:\Users\Mustermann\Desktop\" & Tabelle1.Range("D3").Value, , , , , , True
Antworten Top
#5
(06.06.2017, 11:01)Rabe schrieb: Hi,


z.B. so:
Code:
  'Druck als PDF (Name aus D3 in Tabelle1)
  ThisWorkbook.ExportAsFixedFormat xlTypePDF, "C:\Users\Mustermann\Desktop\" & Tabelle1.Range("D3").Value, , , , , , True

Danke. Aber das speichert die Excel-Datei als PDF.
Ich möchte aber, dass die PDF, die im Internet Explorer erzeugt wurde, einen individuellen Dateinamen erhält. Der Dateiname soll in Excel in einer Spalte hinter der URL stehen.
Antworten Top
#6
Hallöchen,

um das im voraus zu tun, müsstest Du dem pdfcreator den Namen übergeben. Ob das mit dem Shell geht, bezweifle ich. Du müsstest wahrscheinlich versuchen, die Standardeinstellungen vom pdfcreator vor jedem Druck anzupassen. Das wäre dann auch noch Versionsabhängig, bis 1.7.x und ab ca. 2.1.x

Eventuell ist es einfacher, die Datei nach dem Druck durch Excel umzubenennen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
(10.06.2017, 20:25)schauan schrieb: Hallöchen,

um das im voraus zu tun, müsstest Du dem pdfcreator den Namen übergeben. Ob das mit dem Shell geht, bezweifle ich. Du müsstest wahrscheinlich versuchen, die Standardeinstellungen vom pdfcreator vor jedem Druck anzupassen. Das wäre dann auch noch Versionsabhängig, bis 1.7.x und ab ca. 2.1.x

Eventuell ist es einfacher, die Datei nach dem Druck durch Excel umzubenennen.

PDFCreator hat eine COM-Schnittstelle. Da kann man wohl den Dateinamen übergeben. Aber leider habe ich noch nicht herausgefunden wie das geht.

Es wäre schön, wenn die Dateinamen automatisch aus Excel genommen werden, da es sich um mehrere hundert URL handelt.
Antworten Top
#8
Hallo Michael,

wie ich schon schrieb, ist das versionsabhängig. Welche hast Du denn?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#9
(11.06.2017, 14:06)schauan schrieb: Hallo Michael,

wie ich schon schrieb, ist das versionsabhängig. Welche hast Du denn?

Im Moment habe ich PDFCreator Version 2.5.1 Build 5.
Bin aber auch gewillt eine andere Version oder einen anderen PDF Drucker zu verwenden.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste