09.12.2015, 12:45
(Dieser Beitrag wurde zuletzt bearbeitet: 09.12.2015, 13:02 von Rabe.
Bearbeitungsgrund: Zitat formatiert dargestellt mit 5. Button von rechts!
)
Hallo,
ich hab folgendes Problem, hab hier ein Makro gefunden um Bilder zu einer Artikelnr.
einzufügen. Rufe ich nun einen neuen Artikel auf, wird das aktuelle Bild nicht gelöscht,
sondern das neue Bild wird draufgesetzt.
Kann mir einer das Makro erweitern, so das immer nur das Bild zur Artikelnummer im
Arbeitsblatt angezeigt wird.
Hab leider überhaupt kein Plan von VBA.
Hier nun das Makro:
Gruß
Frank
ich hab folgendes Problem, hab hier ein Makro gefunden um Bilder zu einer Artikelnr.
einzufügen. Rufe ich nun einen neuen Artikel auf, wird das aktuelle Bild nicht gelöscht,
sondern das neue Bild wird draufgesetzt.
Kann mir einer das Makro erweitern, so das immer nur das Bild zur Artikelnummer im
Arbeitsblatt angezeigt wird.
Hab leider überhaupt kein Plan von VBA.
Hier nun das Makro:
Code:
Sub BilderEinfuegen()
Dim zeile As Long
Dim bild As String
Dim lzeile As Long
For Each shp In ActiveSheet.Shapes
If shp.Type = msoPicture Then shp.Delete
Next
Dim Pfad As String, Wiederholungen As Long
'Pfad für die Bilder - anpassen!!!
Pfad = "X:\Abteilungen\Betriebstechnik\Kleingeraetrepruefung_BGVA3\Bilder_BGVA3\"
'Alles spielt sich auf dem aktuellen Arbeitsblatt ab
With ActiveSheet
'letzte Zeile in Spalte C des Arbeitsblattes ermitteln
lzeile = .Cells(Rows.Count, 3).End(xlUp).Row
'Ab Zeile 3 die Zeilen durchlaufen
For zeile = 3 To lzeile Step 17
'Name des Bildes einlesen und die Endung .jpg hinzufügen und mit Pfad-Konstante kombinieren
bild = Pfad & .Cells(zeile, 3).Value & ".jpg"
'prüfen, ob überhaupt ein Bild vorhanden ist
If Len(Dir(bild)) = 0 Then
.Cells(zeile + 2, 1) = "Kein Bild mit dem Namen " & .Cells(zeile, 3).Value & ".jpg gefunden!"
Else
'Bild einfügen
.Pictures.Insert (bild)
With .Pictures(.Pictures.Count)
.Top = 300 'Zelle in der das Bild eingefügt wird - oben
.Left = 300 'links
.ShapeRange.ScaleWidth 1, msoFalse, msoScaleFromTopLeft 'Bild skalieren - Breite
.ShapeRange.ScaleHeight 1, msoFalse, msoScaleFromTopLeft 'Höhe
End With
End If
Next zeile
End With
End Sub
Gruß
Frank