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.

VBA Excel Bilder in Zeilen einfügen
#1
Hallo zusammen,

ich habe ein Problem mit dem VBA Modul. Kurz erläutert:

in Spalte A steht eine Artikelnummer und in Spalte C soll ein dazugehöriges Bild über das Makro in der passenden Zeile eingefügt werden. Die Bild Dateien jpeg. liegen in einem anderen Ordner, sie haben die gleiche Bezeichnung wie die Artikelnummer.

Das klappt auch soweit ganz gut für viele Artikel.

Problem 1: Wenn ich nachdem das Makro durchgelaufen ist, einige ARtikel filter, werden die Zeilen richtig dargestellt. Allerdings unter der letzten gefilterten Zeile wird ein Bilderstapel angezeigt, unter dem sich alle herausgefilterten Bilder befinden.

Problem 2: Wie kann ich es einbauen, dass das Makro jedes mal neu die Bilder einfügt, bzw. nicht die Bilder ein 2. Mal übereinanderlegt. Ich hatte das Makro 5 x laufen lassen und entsprechend wurden jedes mal neue Bilder übereinandergelegt...Muss dafür ein Befehl erzeugt werden, der vorab das bereits gespeicherte Makro löscht, um dann neu aufzubauen?


Code:
Option Explicit
Sub Bilder_einfügen()
Dim strPfad As String, lngWiederholungen As Long
Dim PicBild As Picture
On Error Resume Next
strPfad = "......"
For lngWiederholungen = 3 To Cells(Rows.Count, 1).End(xlUp).Row
Set PicBild = ActiveSheet.Pictures.Insert(strPfad & Cells(lngWiederholungen, 1) & ".jpeg")
With PicBild
.Top = Cells(lngWiederholungen, 3).Top
.Left = Cells(lngWiederholungen, 3).Left
'optional Anfang: Größe anpassen
.Height = Cells(lngWiederholungen, 3).Height
.Width = Cells(lngWiederholungen, 3).Width
'optional Ende
End With
Next lngWiederholungen
Set PicBild = Nothing
End Sub



Ich bedanke mich im Voraus für Eure Ideen oder Vorschläge, ich komme da gerade nicht weiter, da ich mit VBA noch nicht lange arbeite.

Viele Grüße!!
Antworten Top
#2
Hi
Dien Problem 2 ist wahrscheinlich ganz einfach mit
"ActiveSheet.DrawingObjects.Delete"
ganz am Anfang des Codes gelöst, ausser du hast noch Bilder im Sheet die du nicht löschen willst.
In dem Falle würde es komplizierter.
Über das andere Problem müsste ich mal nachdenken,
kann mich aber frühestens Montag wieder melden.
Vielleicht hast du Glück und irgendein Profi ist schneller.

Gruss Igel
Ich kann nicht alles wissen,
aber vieles lernen ! 19
[-] Folgende(r) 1 Nutzer sagt Danke an Igelbauer für diesen Beitrag:
  • Excelmonsta
Antworten Top
#3
Hi - vielen Dank schon einmal für den Tipp.
Hab´s gerade ausprobiert. Kann es sein, dass noch eine
Anweisung davor muss - ich bin ja im Option Explicit Modus...?
Viele Grüße.
Antworten Top
#4
(08.12.2017, 13:31)Excelmonsta schrieb: Hi - vielen Dank schon einmal für den Tipp.
Hab´s gerade ausprobiert. Kann es sein, dass noch eine
Anweisung davor muss - ich bin ja im Option Explicit Modus...?
Viele Grüße.
Eigentlich nicht. Du arbeitest da ja nicht mit Variablen.
Sollte es nicht funktionieren, könnte es am Blattschutz liegen.
äh... die Zeile muss natürlich innerhalb des Subs stehen.
Am besten gleich unter "Sub ...(), oder spätestens unter Dim ...
Ich kann nicht alles wissen,
aber vieles lernen ! 19
Antworten Top
#5
Super hat geklappt! Vielen Dank.

Wie könnte denn z. B. die optionale Größenanpassung in dem Makro funktionieren? Aktuell wird das Bild nicht
auf die Größe der Zelle angepasst, sondern einfach eingefügt - unter "Height" und "Width" müssen vermutlich die Faktoren für die Anpassung
noch eingegeben werden?

Vielen Dank im Voraus und
freundliche Grüße!
Antworten Top
#6
Mahlzeit, bin auch wieder da.
Ist natürlich etwas schwierig bei dir ohne Beispieldatei, mit der man experimentieren könnte.
Bin auch kein Profi, sondern lerne noch.
Aufgefallen ist mir bei deinem Code " Cells(lngWiederholungen, 3).Height" und "Width".
Meines Wissens hat die Zelle keine Höhe oder Breite, sondern nur die Reihe und Spalte.
Versuch doch mal das " Cells(lngWiederholungen, 3).Height" durch
" Cells(lngWiederholungen, 3).EntireRow.RowHeight" und bei der Breite
".EntireColumn.ColumnWidth" zu erstetzen.
Müsste (ohne Garantie) eigentlich funktionieren.

Gruss Igel
Ich kann nicht alles wissen,
aber vieles lernen ! 19
Antworten Top
#7
Hallöchen,

eine Zelle hat auch eine Breite und eine Höhe Smile

Wenn das mit den Bildern nicht funktioniert, liegt es oft am Sperren des Seitenverhältnisses der Bilder. Die entsprechende Eigenschaft bekommst Du übrigens per Aufzeichnen hin.

Wenn das Seitenverhältnis wichtig ist, müsstest Du schauen, ob bei Einstellen z.B. der Höhe die Breite des Bildes größer ist als die Zellbreite und nur wenn ja, die Breite noch einstellen.
Wenn nicht, dann deaktiviere das Seitenverhältnis.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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