14k Aufrufe
Gefragt in Tabellenkalkulation von berpre Mitglied (452 Punkte)
Hallo Excel Freunde,

ich benutze Excel 2007 und möchte Bilder in eine Zelle einfügen und damit eine Prospekt- Mappe vervollständigen. Ich habe im Internet gesucht und keine für mich in Frage kommende Antwort gefunden oder aber auch von den vielen Möglichkeiten viele übersehen.

Meine Frage:

Die Bilder liegen in einem Ordner „ J:\Prospekt_Bilder „, die Prospekt-Mappe liegt in „ M:\Prospekt „.
Die Bilder sollen in dem Prospekt in die Spalte „ F „ eingefügt werden. In Spalte „ A „ liegen die eindeutige Artikel Nummer. Die Bilder haben die gleichen eindeutigen Artikel Nummer. Wenn der Artikel aus dem Prospekt genommen wird und die Zeile gelöscht wird, soll auch das Bild automatisch gelöscht werden.
Die Bilder sollen alle die gleiche Größe ( Zeilenhöhe 40 ) erhalten, dass sie sich den Zellen automatisch anpassen. Zellen Höhe und Bild Höhe gleich. Zur besseren Auswahl und Ansicht sollen die Bilder bei dem darüberfahren mit dem Mauszeiger, vergrößert werden.

Gruß Berpre

8 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Berpre,

nachfolgendes Makro fügt Dir die Bilder in Spalte F ein, dessen Artikelnummern in Spalte A stehen und bringt die Bilder auf eine Höhe von 400 Pixel.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub Bilder_einfügen()

Dim strPfad As String, lngWiederholungen As Long
Dim picBild As Picture
On Error Resume Next
strPfad = " J:\Prospekt_Bilder\"
For lngWiederholungen = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Set picBild = ActiveSheet.Pictures.Insert(strPfad & Cells(lngWiederholungen, 1) & ".jpg")
With picBild
.Top = Cells(lngWiederholungen, 6).Top
.Left = Cells(lngWiederholungen, 6).Left
.Height = 400
End With
Next lngWiederholungen
Set picBild = Nothing
End Sub

Zur besseren Auswahl und Ansicht sollen die Bilder bei dem darüberfahren mit dem Mauszeiger, vergrößert werden.

Das gibt es in Exceltabellen nicht.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Berpre, Hallo Oliver,

Seit gut einer Stunde versuche ich vergeblich die Beispiele in den nachfolgenden Links (Downloads bezüglich Vergrößerung der Bilder durch Mausberührung) nachzuvollziehen.

Ich bin überzeugt, dass Ihr es besser könnt, oder diese Beispiele sind für die Frage nicht geeignet.

2 Downloads

1 Download


schöne Grüße

Paul1
0 Punkte
Beantwortet von berpre Mitglied (452 Punkte)
Hallo Oliver,

ich bin kein VBA Könner, versuche gerade die ersten Schritten zu bewerkstelligen.

Ich versuche die ganze Zeit Deinen Code zum laufen zu bringen. ( Blödes Deutsch ). kannst Du mir eine Beispieldatei einstellen oder soll ich Dir meine E-Mail im Pager angeben.

Hallo Paul1,
Deine Downloads habe ich mir angeschaut. Dies würde meinen Vorstellungen mit dem vergrößern entsprechen.

Gruß Berpre
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Paul,

in Beispiel 1 und 2 gehen die Helfer von dem Steuerelement "Image" aus, dem dann in der Eigenschaft "Picture" ein Bild zugewiesen wurde. Steuerelemente haben einen MouseOver bzw. in VBA heißt das MouseMove, dei hier dann verwandt wurden.

@Berpre: Was funktioniert denn bei dem Makro bei Dir nicht? Wobei die Methode aus den Beispieldateien von Paul dort eh nicht funktionieren wird, da es sich hierbei nicht um Steuerelemente habdelt, die dort eingefügt werden.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von berpre Mitglied (452 Punkte)
Hallo Oliver,

nach Deiner Anleitung habe ich es geschaft!!!!!!

Die Bilder haben in der Original-Pixelgröße : X= 46; Y= 39 und werden nach Deiner Vorgabe unterschiedlich in Größen und nicht in der Zelle verankert. In Excel ist die Zeilenhöhe 40 und die Spaltenbreite
auf 10,38 eingestellt.
Können diese Bilder z.B. an der linken oberen Ecke in der Zelle fixiert werden ?

Gruß Berpre
0 Punkte
Beantwortet von berpre Mitglied (452 Punkte)
Hallo Oliver,

im Nachgang habe ich festgestellt, bei 2 maligen Klick auf die Befehlsschaltfläche, werden die gleiche Bilder doppelt angezeigt.
Kann man dies verhindern ?

Gruß Berpre
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Berpre,

mit dem obigen Code werden die Bilder in der linken oberen Ecke ausgerichtet, so wie Du es nach Deiner AW5 möchtest. Daher verstehe ich Deine Frage nicht.

Nachfolgender Code löscht vorher das Bild wieder bevor dieses wieder eingefügt wird. Tausche ihn gegen den alten Code aus.

Option Explicit

Sub Bilder_einfügen()

Dim strPfad As String, lngWiederholungen As Long
Dim picBild As Picture
On Error Resume Next
strPfad = "J:\Prospekt_Bilder\"
For lngWiederholungen = 1 To Cells(Rows.Count, 1).End(xlUp).Row
On Error Resume Next
ActiveSheet.Shapes(Cells(lngWiederholungen, 1)).Delete
On Error GoTo 0
Set picBild = ActiveSheet.Pictures.Insert(strPfad & Cells(lngWiederholungen, 1) & ".jpg")
With picBild
.Name = Cells(lngWiederholungen, 1)
.Top = Cells(lngWiederholungen, 6).Top
.Left = Cells(lngWiederholungen, 6).Left
.Height = 40
End With
Next lngWiederholungen
Set picBild = Nothing
End Sub


MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von berpre Mitglied (452 Punkte)
Hallo Oliver,

ich möchte mich bei Dir für die Lösung recht herzlich bedanken.

Gruß Berpre
...