785 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,
ich habe eine Exceldatei (2007) mit ca. 5000 Zeilen. Dort füge ich mit einem Makro automatisch die Bilder ein. Das funktioniert auch super.
Jetzt bräuchte ich in dem Makro noch die Variable das nur die gefilterten Zeilen angesprochen werden, sodass nicht immer alle 5000 Bilder eingefügt werden.

Hat jemand eine Idee?


Option Explicit

Sub Bilder_einfügen()
Dim Pfad As String, Wiederholungen As Long
On Error Resume Next
Pfad = "c:\..."
For Wiederholungen = 2 To Range("B65536").End(xlUp).Row
Cells(Wiederholungen, 3).Activate
ActiveSheet.Pictures.Insert(Pfad & Cells(Wiederholungen, 2) & ".jpg").Select
Next
End Sub

4 Antworten

0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

reicht eine Anfrage nicht???

Probier es mal so:

Option Explicit

Sub Bilder_einfügen()
Dim Pfad As String
Dim Wiederholungen As Long
Dim Letzte As Long
Dim Zelle As Range

On Error Resume Next
Pfad = "c:\.."
Letzte = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row

For Each Zelle In ActiveSheet.Range(Cells(2, 3), Cells(Letzte, 3)).Cells.SpecialCells(xlCellTypeVisible)
Zelle.Pictures.Insert(Pfad & Cells(Wiederholungen, 2) & ".jpg").Select
Next Zelle

End Sub

Gruß

M.O.
0 Punkte
Beantwortet von
Ja, hatte es in der faschen Kategorie stehen - daher. (Hab es auch schon gemeldet)

Danke, M.O.

Geht leider nicht. Jetzt kommen gar keine Bilder mehr.
Der Name der Bilder steht in Zeile B.
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

mein Versehen :-(.

So sollte es aber funktionieren:

Option Explicit

Sub Bilder_einfügen()
Dim Pfad As String
Dim Letzte As Long
Dim Zelle As Range

On Error Resume Next
Pfad = "C:\Pictures\"
Letzte = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row

For Each Zelle In ActiveSheet.Range(Cells(2, 3), Cells(Letzte, 3)).Cells.SpecialCells(xlCellTypeVisible)
With ActiveSheet
.Pictures.Insert (Pfad & Cells(Zelle.Row, 2) & ".jpg")
With .Pictures(.Pictures.Count)
.Top = Zelle.Top
.Left = Zelle.Left
End With
End With

Next Zelle

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von
Perfekt! Danke M.O.
...