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

Bilder exportieren aus dem Internet

Bilder exportieren aus dem Internet
19.12.2017 17:26:56
Oli
Hey Leute!
ich möchte von einer Internetseite gerne Bilder exportieren und in meine Exceltabelle einfügen, wofür ich auch bereits einen Code habe. Doch dieser fügt manchmal, wenn er mehrere Internetseiten abklappern soll um diese zu exportieren manchmal zwei mal das selbe Bild ein und manchmal nicht. Und am Anfang, wenn er beginnt macht er oft einfach in 5 Kästchen hintereinander ein Blaues Viereck.
Ist ziemlich nervig damit zu arbeiten.. hoffe jemand kann mir da weiterhelfen!
Mein Code:

Sub SearchBot1()
Dim IE As New SHDocVw.InternetExplorer, pfad As String, sh As Shape, Bild As String, cl As  _
Range, yAchse As String, xLink As String, xAchse As String, Preis As Object, Preis2 As Object
Dim Zelle As String
Dim ModelNummerKnoten1 As Object, ModelNummer1 As Object, ModelNummerKnoten2 As Object,  _
ModelNummer2 As Object
IE.Visible = False
yAchse = 4
xLink = "K"
START:
yAchse = yAchse + 1
pfad = "ActiveSheet.Range(xAchse & yAchse)"
Do Until Cells(yAchse, 11).Value  " " Then GoTo START
IE.navigate ActiveSheet.Range(xLink & yAchse)
Do While IE.Busy = True Or IE.readyState  4: DoEvents: Loop
'Bild
xAchse = "B"
For Each pic In IE.document.getElementsByClassName("pic")
Set cl = Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)
Set sh = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100, 100, 100, 100.25)
With sh
On Error Resume Next
.Fill.UserPicture pic.src
.LockAspectRatio = msoFalse
.Width = cl.Width
.Height = cl.Height
.top = cl.top
.Left = cl.Left
End With
cl.Value = "x"
Set cl = Nothing
Set sh = Nothing
Set pic = Nothing
Next

Freue mich auf eure Antworten!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bilder importieren aus dem Internet
19.12.2017 21:30:28
Zwenn
Hallo Oli,
der Code ist nicht vollständig oder? Er endet jedenfalls nicht mit End Sub. Abgesehen davon, dass ich persönlich ihn sehr gruselig finde (wer GoTo verwendet, der frisst auch kleine Kinder ;-)), wäre es sehr hilfreich, wenn Du die URL dazu postest. Noch besser wäre eine Beispielmappe.
  • Sehe ich es richtig, dass Du die Bilder in Spalte K ab Zeile 5 einfügen möchtest?

  • Was willst Du mit den vielen deklarierten Variablen machen?

  • In der zweiten Zeile nach Start: verwendest Du einen String, um den Pfad zu setzen. Der besteht aber aus Quellcode, dürfte also nicht in Anführungsstriche geschrieben werden. In der Zeile verwendest Du allerdings xAchse, weshalb der Code nicht funktionieren dürfte, denn xAchse ist vorher nicht definiert worden.

  • Das spielt aber eh nur eine Rolle, falls der Code unvollständig ist. Denn die Variable pfad wird im weiteren Verlauf des Makros gar nicht verwendet.

  • Weiter habe ich mir das bisher nicht angesehen. Nimm das mal als erste Anmerkungen. Hier mal eine Sub, die aus einem anderen Makro aufgerufen wird, um ein Bild aus dem I-Net in eine definierte Zelle zu Importieren und es im gleichen Rutsch zu skalieren:
    
    Sub GrafikInZelleEinfuegen(bilderLink As String, _
    tabelle As String, _
    zeile As Long, _
    spalte As Integer, _
    bildSkalierung As Single)
    Dim grafik As Shape
    ActiveSheet.Shapes.AddPicture(bilderLink, False, True, Sheets(tabelle). _
    Cells(zeile, spalte).Left + 5, Sheets(tabelle).Cells(zeile, spalte).Top _
    + 5, -1, -1).Select
    Selection.ShapeRange.ScaleHeight bildSkalierung, msoFalse, msoScaleFromTopLeft
    End Sub
    
    Hier kannst Du nachlesen, wie die .AddPicture-Methode für das Shape Objekt funktioniert:
    https://msdn.microsoft.com/de-de/vba/excel-vba/articles/shapes-addpicture-method-excel
    Viele Grüße,
    Zwenn
    Anzeige
    AW: Bilder importieren aus dem Internet
    19.12.2017 21:50:19
    Zwenn
    Ups,
    immer wieder gern genommen ... Andere kritisieren und die gleichen Fehler machen ;-) Hier nochmal die Sub mit entfernter überflüssiger Variable grafik und verwendeter Varible tabelle.
    
    Sub GrafikInZelleEinfuegen(bilderLink As String, _
    tabelle As String, _
    zeile As Long, _
    spalte As Integer, _
    bildSkalierung As Single)
    Sheets(tabelle).Shapes.AddPicture(bilderLink, False, True, Sheets(tabelle). _
    Cells(zeile, spalte).Left + 5, Sheets(tabelle).Cells(zeile, spalte).Top _
    + 5, -1, -1).Select
    Selection.ShapeRange.ScaleHeight bildSkalierung, msoFalse, msoScaleFromTopLeft
    End Sub
    
    Viele Grüße,
    Zwenn
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige