Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bild per Button einfügen

Bild per Button einfügen
17.04.2016 15:00:57
Michael
Hallo liebes Forum
ich hoffe ihr könnt mir helfen .
habe eine Arbeitsmappe in der ich einen Button machen möchte wenn ich den drücke soll er mir den Ordner im Explorer mit den Bildern öffnen das ich dann ein Bild auswählen kann und er es dann einfügt.
in der Größe höhe 3,21 und breite 4,82.
Ich hoffe ihr könnt mir helfen
Mfg Michael

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bild per Button einfügen
17.04.2016 16:07:05
Michael
Hallo Forum
hab mal mit dem Recorder probiert das klappt auch
aber immer in die Selbe Zelle und das selbe Bild.
Kann mir da einer weiter helfen hier die Datei
https://www.herber.de/bbs/user/105028.xlsm
Gruß Michael

Anzeige
AW: Bild per Button einfügen
18.04.2016 12:30:41
Bernd
Hi,
das hat mal hajo gepostet, entweder dies:
Sub bild()
Dim dat
dat = Application.GetOpenFilename("Bilddateien (*.jpg), *.jpg")
If dat  False Then
' erstes Offset Pos. Links 0 Zeilen und eine Spalte nach rechts
' zweites Offset Pos. Oben 0 Zeilen tiefer und 0 Spalten nach rechts
With ActiveSheet.Shapes.AddPicture(dat, True, True, Range("C6").Offset(0, 0).Left, _
Range("C6").Offset(0, 0).Top, 150, 150)
.Name = "PIC " & Range("C6").Address(False, False)
End With
End If
End Sub

oder das:
Option Explicit
Sub bild()
Dim dat
ChDrive "C:\"
ChDir "C:\Users\Hajo_Zi\Desktop"
dat = Application.GetOpenFilename("Bilddateien (*.jpg), *.jpg")
If dat  False Then
' erstes Offset Pos. Links 0 Zeilen und eine Spalte nach rechts
' zweites Offset Pos. Oben 0 Zeilen tiefer und 0 Spalten nach rechts
With ActiveSheet.Shapes.AddPicture(dat, True, True, Range("C6").Offset(0, 0).Left, _
Range("C6").Offset(0, 0).Top, 150, 150)
.Name = "PIC " & Range("C6").Address(False, False)
End With
End If
End Sub

mfg Bernd

Anzeige
AW: Bild per Button einfügen
18.04.2016 15:30:05
Michael
Hallo Bernd
danke für die Schnelle Hilfe ,das fünktioniert beides sehr gut
aber nur in einer Zelle.
Würde das auch gehn in anderen Zellen also sagen wir Spalte I.
Jetzt setzt er mir das Bild in I2 will aber dann auch in I3,I4,I5 und so weiter also die ganze Spalte.
geht das auch mit Active cells?
Gruß Michael

Anzeige
AW: Bild per Button einfügen
19.04.2016 05:08:30
Bernd
Hi,
eine andere Variante vom Sepp:
Sub insertPicture()
Dim rng As Range
Dim objPicture As Object
Dim strFile As String
strFile = Application.GetOpenFilename("Grafikdateien (*.jpg; *.gif; *.png)," & _
"*.jpg; *.gif; *.png")
If strFile  CStr(False) Then
On Error Resume Next
Set rng = Application.InputBox("Zielzelle wählen:", "Grafik einfügen", ActiveCell.Address,  _
Type:=8)
On Error GoTo 0
If Not rng Is Nothing Then
Set objPicture = ActiveSheet.Pictures.Insert(strFile)
objPicture.Top = rng(1, 1).Top
objPicture.Left = rng(1, 1).Left
End If
End If
Set rng = Nothing
Set objPicture = Nothing
End Sub

mfg Bernd

Anzeige
AW: Bild per Button einfügen
19.04.2016 19:25:25
Michael
Hallo Bernd
Danke erstmal für deine Mühe werde es morgen gleich testen.
War heute nur Unterwegs.
Mfg Michael

AW: Bild per Button einfügen
19.04.2016 21:45:43
Michael
Hallo Bernd
habe es doch noch ausprobiert genau so wollte ich es jetzt müsste sich das Bild nur noch automatisch an die Zelle anpassen ist das noch möglich.
Gruß Michael

Anzeige
AW: Bild per Button einfügen
20.04.2016 04:46:24
Bernd
Hi,
also mit nachstehendem Code sollte es funktionieren:
Sub InsertPicture()
Dim sPicture As String, pic As Picture
sPicture = Application.GetOpenFilename _
("Pictures (*.gif; *.jpg; *.bmp; *.tif), *.gif; *.jpg; *.bmp; *.tif", _
, "Select Picture to Import")
If sPicture = "False" Then Exit Sub
Set pic = ActiveSheet.Pictures.Insert(sPicture)
With pic
.ShapeRange.LockAspectRatio = msoFalse
.Height = ActiveCell.Height
.Width = ActiveCell.Width
.Top = ActiveCell.Top
.Left = ActiveCell.Left
.Placement = xlMoveAndSize
End With
Set pic = Nothing
End Sub
Hier musst Du jedoch die Zielzelle vorher markieren, ansonsten geht's wie beim anderen.
mfg Bernd

Anzeige
AW: Bild per Button einfügen
20.04.2016 07:19:25
Michael
Hallo Bernd
Genau das hab ich gesucht viele vielen Dank.
Mit freundlichen Grüßen
Michael

Gerne, Danke für die Rückmeldung - owT
20.04.2016 08:18:22
Bernd
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bilder per Button in Excel einfügen


Schritt-für-Schritt-Anleitung

  1. Button in Excel einfügen:

    • Gehe auf die Registerkarte „Entwicklertools“. Falls diese nicht sichtbar ist, aktiviere sie über „Datei“ > „Optionen“ > „Menüband anpassen“ und aktiviere das Kontrollkästchen „Entwicklertools“.
    • Klicke auf „Einfügen“ und wähle eine „Schaltfläche (Formularsteuerung)“ aus.
    • Zeichne die Schaltfläche auf dem Arbeitsblatt.
  2. Makro zuweisen:

    • Nach dem Zeichnen wirst Du gefragt, welchem Makro die Schaltfläche zugeordnet werden soll. Wähle „Neues Makro“ und klicke auf „OK“.
  3. VBA-Code einfügen:

    • Der VBA-Editor öffnet sich. Füge den folgenden Code ein, um ein Bild per Button einzufügen:
    Sub InsertPicture()
       Dim sPicture As String, pic As Picture
       sPicture = Application.GetOpenFilename _
       ("Pictures (*.gif; *.jpg; *.bmp; *.tif), *.gif; *.jpg; *.bmp; *.tif", _
       , "Select Picture to Import")
       If sPicture = "False" Then Exit Sub
       Set pic = ActiveSheet.Pictures.Insert(sPicture)
       With pic
           .ShapeRange.LockAspectRatio = msoFalse
           .Height = ActiveCell.Height
           .Width = ActiveCell.Width
           .Top = ActiveCell.Top
           .Left = ActiveCell.Left
           .Placement = xlMoveAndSize
       End With
       Set pic = Nothing
    End Sub
  4. Testen:

    • Schließe den VBA-Editor und klicke auf den Button, um das Bild auszuwählen und einzufügen.

Häufige Fehler und Lösungen

  • Fehler: Der Button funktioniert nicht.

    • Lösung: Stelle sicher, dass das Makro aktiviert ist und keine Sicherheitswarnungen angezeigt werden. Gehe zu „Datei“ > „Optionen“ > „Trust Center“ und aktiviere die Makros.
  • Fehler: Bild wird nicht an die Zelle angepasst.

    • Lösung: Stelle sicher, dass der Code .Height und .Width korrekt auf die Zelle verweist. Ändere die Werte, um die Größe anzupassen.

Alternative Methoden

  • VBA Schaltfläche einfügen: Du kannst auch eine ActiveX-Schaltfläche verwenden, um mehr Kontrolle über das Verhalten des Buttons zu haben. Füge sie ebenfalls über die „Entwicklertools“ ein.

  • Bild als Button: Anstatt einen separaten Button zu verwenden, kannst Du ein Bild als Button gestalten. Füge ein Bild ein, klicke mit der rechten Maustaste darauf und wähle „Hyperlink“ oder „Makro zuweisen“.


Praktische Beispiele

  • Beispiel 1: Wenn Du Bilder in einer Spalte (z.B. Spalte I) einfügen möchtest, kannst Du den Code anpassen, indem Du die Zelle für den Offset definierst:

    With ActiveSheet.Shapes.AddPicture(dat, True, True, Range("I" & ActiveCell.Row).Left, _
    Range("I" & ActiveCell.Row).Top, 150, 150)
  • Beispiel 2: Um mehrere Bilder nacheinander einzufügen, kannst Du eine Schleife im VBA-Code implementieren, die die aktive Zelle nach unten verschiebt.


Tipps für Profis

  • Makro Button einfügen: Du kannst den Button so programmieren, dass er automatisch die nächste leere Zelle in einer bestimmten Spalte findet, um das Bild dort einzufügen.

  • Automatische Anpassung: Füge zusätzliche Logik in deinen VBA-Code ein, um die Bildgröße an die Zelle anzupassen, damit das Bild immer optimal dargestellt wird.


FAQ: Häufige Fragen

1. Wie füge ich einen Button in Excel ein?
Du kannst einen Button über die Registerkarte „Entwicklertools“ einfügen. Wähle „Einfügen“ und dann eine „Schaltfläche (Formularsteuerung)“ aus.

2. Was kann ich tun, wenn das Bild nicht angezeigt wird?
Überprüfe, ob der Pfad zur Bilddatei korrekt ist und ob die Datei im unterstützten Format vorliegt.

3. Kann ich auch andere Dateiformate einfügen?
Ja, passe den Code entsprechend an, um auch andere Dateiformate wie PNG oder BMP einzufügen. Ändere einfach die Dateifilter im GetOpenFilename-Befehl.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige