Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1560to1564
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

Hyperlinks (Barcodes) runterladen und einfügen

Hyperlinks (Barcodes) runterladen und einfügen
29.05.2017 09:21:15
Carsten
Guten Morgen zusammen,
ist es möglich wenn ich einen über Verkettung generierten Link zu einem Barcode habe diesen mittels VBA runterladen zu lassen und anschließend die geladenen Dateien als Bild in die Exceltabelle einfügen zu lassen?
Im Prinzip hab ich in Spalte I 8 Links stehen, die wenn ich auf sie Drücke ein Download starten lassen mitdem ein .PNG runtergeladen wird. Dieses Bilddatein möchte ich gerne dann in Zelle K1-K8 als Bild einfügen.
Vielen Dank schonmal für Vorschläge :)
Beispiel Datei:
https://www.herber.de/bbs/user/113848.xlsx

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ein Versuch
29.05.2017 10:45:35
Fennek
Hallo Carsten,
mit dem beigefügten Code sollten alle Barcodes in das Default-Verzeichnis von xl (also typischerweise "Dokumente") downgeloaded werden.
In einem zweiten Schritt werden die Bilder dann in die xl Datei importiert.
Bitte berichte, ob es geklappt hat.

Private Declare PtrSafe Function iDownLoad Lib "urlmon" Alias "URLDownloadToFileA" (ByVal  _
pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Sub Test()
Dim iURL As String, jFile As String
Dim iLng As Long
For i = 1 To Cells(Rows.Count, "J").End(xlUp).Row
jFile = "Barcode" & Cells(i, "I")
Debug.Print Cells(i, "J")
iLng = iDownLoad(0, iURL, jFile, 0, 0)
Next i
End Sub
mfg
(nicht mit den Barcodes getestet)
Anzeige
AW: ein Versuch
29.05.2017 11:10:17
Carsten
Vielen Dank schonmal für die Hilfe,
allerdings ging es so nicht ganz. Hab noch ein wenig abändern müssen sodass der Code so aussieht: (iURL hab ich noch definiert)
... dann lädt er auch Datein runter, diese sind 2kb groß und haben kein Datei Format, wie kann das sein? Muss ich da noch nen Datei Format oder so vorgeben?
Private Declare PtrSafe Function iDownLoad Lib "urlmon" Alias "URLDownloadToFileA" (ByVal _
pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long
Sub Test()
Dim iURL As String, jFile As String
Dim iLng As Long
Dim Pfad As String
Pfad = "C:\Users\ADMIN\Desktop\Neuer Ordner\"
For i = 1 To 8
jFile = "Barcode" & Cells(i, "I")
iURL = Cells(i, "J")
Debug.Print Cells(i, "J")
iLng = iDownLoad(0, iURL, Pfad & jFile, 0, 0)
Next i
End Sub

Anzeige
AW: & *.gif
29.05.2017 11:16:53
Fennek
Hallo,
ergänze den Filetyp, falls es *.gif ist, dann
jFile = "Barcode" & cells(i,"J") & ".gif"
mfg
AW: & *.gif
29.05.2017 11:19:28
Carsten
Jetzt liegen die Datein in dem Ordner, nur wie bekomm ich die jetzt automatisiert in die Tabelle :D hatte das Makro bislang nicht drin oder? :)
AW: ein Versuch
29.05.2017 11:17:21
Carsten
Fertig.
Also hab noch die Datei-Endung dazu gepackt, klappt super :D
Private Declare PtrSafe Function iDownLoad Lib "urlmon" Alias "URLDownloadToFileA" (ByVal _
pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long
Sub Test()
Dim iURL As String, jFile As String
Dim iLng As Long
Dim Pfad As String
Pfad = "C:\Users\ADMIN\Desktop\Neuer Ordner\"
For i = 1 To 8
jFile = "Barcode" & Cells(i, "I") & ".png"
iURL = Cells(i, "J")
Debug.Print Cells(i, "J")
Debug.Print Pfad & jFile
Debug.Print iURL
iLng = iDownLoad(0, iURL, Pfad & jFile, 0, 0)
Next i
End Sub

Anzeige
AW: ein Versuch
29.05.2017 11:27:55
Fennek
Hallo,
versuche mit dem Makro-Rekorder ein "Einfügen, Bild aus Datei" aufzuzeichnen. Kannst due das dann in einen vernünftigen VBA-Code umschreiben?
Shapes, also auch bilder kann man mit der Eigenschaft ".Top, .Left" und "Scale" sehr genau an die richtige Stelle plazieren.
mfg
(diese Konstruktion des downloads habe ich hier zum ersten Mal vorgeschlagen, also wieder etwas dazugelernt)
AW: ein Versuch
29.05.2017 11:36:06
Carsten
Hab es so gelöst bekommen :)
Für alle die es Interessiert :D
Danke nochmals:)
Sub GraphicfileInZelleEinfuegen()
Dim strPfad As String
Dim strDatei As String
Dim Zeile As Long
Dim Spalte As Long
Dim wksTabelle As Worksheet
Dim shpNeu As Object
Dim Pfad As String
Spalte = 14
Set wksTabelle = ActiveWorkbook.Worksheets("Tabelle11")
Pfad = "C:\Users\ADMIN\Desktop\Neuer Ordner\"
strPfad = Pfad
For Zeile = 1 To 8
jFile = "Code" & Cells(Zeile, "I") & ".png"
strDatei = jFile
If Right(strPfad, 1)  "\" Then strPfad = strPfad & "\"
Set shpNeu = wksTabelle.Pictures.Insert(strPfad & strDatei)
shpNeu.Top = wksTabelle.Rows(Zeile).Top
shpNeu.Height = wksTabelle.Rows(Zeile).Height
shpNeu.Left = wksTabelle.Columns(Spalte).Left
shpNeu.Width = wksTabelle.Columns(Spalte).Width
Next
End Sub

Anzeige
AW: VBA gut
29.05.2017 11:43:28
Fennek
so macht das Helfen Spaß, ein Tip und der Fragesteller setzt das besser und schneller um, als ich das könnte.
Das beinhaltet aber...
30.05.2017 07:51:16
Case
Hallo Carsten, :-)
... das Problem, dass "Pictures.Insert" nur Verknüpfungen einfügt. Gibst Du die Datei weiter sind die Bilder "verschwunden". ;-)
Hier würde ich eher mit "Shapes.AddPicture" arbeiten. ;-)
Du musst die Bilder auch nicht erst auf der Festplatte speichern, sondern kannst sie direkt ins Tabellenblatt laden: ;-)
ActiveSheet.Shapes.AddPicture "http://barcode.tec-it.com/barcode.ashx?" & _
"translate-esc=off&data=6278136010400&code=DataMatrix&unit=Min&dpi=" & _
"300&imagetype=Gif&rotation=0&color=000000&bgcolor=FFFFFF&qunit=" & _
"Mm&quiet=0&download=true", msoFalse, msoTrue, 160, 60, 80, 80
Da musst Du jetzt nur noch eine Schleife basteln und den Teil "6278136010400" jeweils austauschen. \O/
Brauchst Du da ein Beispiel?
Servus
Case

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige