Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Bilder einlesen

VBA Bilder einlesen
21.01.2022 08:03:37
Sven
Hallo zusammen,
ich habe folgendes Problem ich würde gerne anhand eines Makros Bilder in Excel einfügen.
Nun habe ich gleich mehrere Probleme:
1) der Ordner variiert immer somit müsste sich eine Auswahl öffnen, wo ich dieses Bild auswählen kann.
2) Müsste ich Auswählen können wohin dieses Bild kopiert wird. Ich habe in meinem Sheet eine Seite diese Fotos heißt und habe 6 Bereiche wohin die Bilder müssten ich bräuchte die Möglichkeit beim Bilder einlesen ihm zu sagen ok du bist „Bild6“ du musst auf diese Position.
3) Müsste ich im Makro die Möglichkeit haben diese Bilder in der Größe anzupassen.
Hier mal ein Kleines Bsp.: wie ich mir sowas vorstellen würde:
Makro anklicken / Bild auswählen aus Ordner / Auswählen wohin es kopiert, wird zum Bsp.: Position 4 und dann müsste die Größe dieses Bildes auf den Bereich angepasst werden.
Ich würde mich sehr freuen, wenn mir hier jemand helfen könnte. 
LG Sven
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Bilder einlesen
21.01.2022 08:13:06
volti
Hallo Sven,
hier mal auf die Schnelle eine Angangsanregung zu Deinem Thema...
Herber-Forum: Bild einfügen
Gruß
Karl-Heinz
AW: VBA Bilder einlesen
25.01.2022 12:09:04
Sven
Hallo,
ich komm hier leider nicht weiter und versuche nun schon seit einige Tagen hier eine Lösung zu finden.
ich hätte hier gerne noch eine Auswahl wo ich festlegen kann wohin das Bild eingefügt wird in welches Sheet und an welche Position z.B Sheet Photos Position A1:D21
nächstes Bild Postion D22:.... usw.
Am besten evtl mit einer zahlen auswahl 1 ist Postion A1:D21 usw
Hoffe es kann mir hier jemand helfen :)
Sub Bild_einfügen_und_Anpassen_aus_Datei()
' Fügt ein Bild aus einer Datei ein und passt es an
' Eingefügt an selektierter Stelle, Höhe/Breite bleibt
Dim sPicFile As Variant, oPic As Shape
sPicFile = Application.GetOpenFilename _
("Pictures (*.gif; *.jpg; *.bmp; *.tif; *.jxr), *.gif; *.jpg; *.bmp; *.tif; *.jxr", _
, "Bild auswählen")
If sPicFile "" Then
Set oPic = ActiveSheet.Shapes.AddPicture(Filename:=sPicFile, _
LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _
Left:=Selection.Left, Top:=Selection.Top, Width:=-1, Height:=-1)
With oPic
.LockAspectRatio = msoTrue
.Height = .TopLeftCell.Height ' Höhe der Bild-Zelle
.Placement = xlMoveAndSize
End With
Set oPic = Nothing
End If
Anzeige
AW: VBA Bilder Größe anpassen
21.01.2022 15:08:58
Oraculix
Hallo
Also zum anpassen der Bild Höhe und Breite kannst Du das Verwenden.

Private Sub CommandButton1_Click()
Dim objShape As Shape
For Each objShape In Tabelle1.Shapes
With objShape
If .Type = msoPicture Then
.LockAspectRatio = False
.Left = .TopLeftCell.Left + .TopLeftCell.Width / 2 - .Width / 2
.Top = .TopLeftCell.Top + .TopLeftCell.Height / 2 - .Height / 2
.Height = Application.CentimetersToPoints(4.2) 'Alle Grafiken Gleiche Höhe
.Width = Application.CentimetersToPoints(6.22) ' und Breite
End If
End With
Next
End Sub
Gruß
Oraculix
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bilder in Excel mit VBA einfügen und anpassen


Schritt-für-Schritt-Anleitung

Um Bilder in Excel mittels VBA einzufügen und anzupassen, befolge diese Schritte:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke im Menü auf Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub Bild_einfügen_und_Anpassen_aus_Datei()
       Dim sPicFile As Variant, oPic As Shape
       sPicFile = Application.GetOpenFilename _
           ("Pictures (*.gif; *.jpg; *.bmp; *.tif; *.jxr), *.gif; *.jpg; *.bmp; *.tif; *.jxr", _
           , "Bild auswählen")
       If sPicFile <> "" Then
           Set oPic = ActiveSheet.Shapes.AddPicture(Filename:=sPicFile, _
               LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _
               Left:=Selection.Left, Top:=Selection.Top, Width:=-1, Height:=-1)
           With oPic
               .LockAspectRatio = msoTrue
               .Height = .TopLeftCell.Height      ' Höhe der Bild-Zelle
               .Placement = xlMoveAndSize
           End With
           Set oPic = Nothing
       End If
    End Sub
  4. Starte das Makro: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.

  5. Wähle das Bild aus: Ein Dialog öffnet sich, wo Du das gewünschte Bild auswählen kannst.

  6. Positioniere das Bild: Klicke auf die Zelle, wo das Bild eingefügt werden soll.


Häufige Fehler und Lösungen

  • Fehler: Bild wird nicht eingefügt
    Lösung: Stelle sicher, dass Du eine Zelle ausgewählt hast, bevor Du das Makro startest.

  • Fehler: Bildgröße passt nicht
    Lösung: Überprüfe, ob die .TopLeftCell.Height korrekt referenziert ist, und passe die Werte nach Bedarf an.


Alternative Methoden

Wenn Du kein VBA verwenden möchtest, kannst Du Bilder auch manuell einfügen:

  1. Gehe zu Einfügen > Bilder.
  2. Wähle das Bild von Deinem Computer aus.
  3. Ziehe das Bild in die gewünschte Position und passe die Größe manuell an.

Für eine automatisierte Lösung kannst Du auch Excel-Add-Ins prüfen, die das Einfügen und Anpassen von Bildern erleichtern.


Praktische Beispiele

  1. Bilder in definierten Bereichen einfügen: Du kannst das obenstehende Makro anpassen, um Bilder in vordefinierte Bereiche einzufügen, z.B.:

    ' Beispiel zur Festlegung der Position
    Dim rng As Range
    Set rng = ThisWorkbook.Sheets("Photos").Range("A1:D21") ' Beispielbereich
    oPic.Left = rng.Left
    oPic.Top = rng.Top
  2. Mehrere Bilder einfügen: Du kannst eine Schleife erstellen, um mehrere Bilder hintereinander einzufügen.


Tipps für Profis

  • Verwende benannte Bereiche: Das macht es einfacher, Bilder in spezifische Zellen einzufügen.
  • Automatisiere die Größenanpassung: Überlege, eine Funktion zu erstellen, die die Höhe und Breite aller Bilder auf einmal anpasst, um ein einheitliches Layout zu erzielen.
  • Nutze Fehlerbehandlung: Implementiere On Error-Anweisungen im VBA-Code, um Fehler abzufangen und zu melden.

FAQ: Häufige Fragen

1. Kann ich das Bild auch in ein anderes Sheet einfügen?
Ja, Du kannst das Ziel-Sheet im Code angeben, indem Du ThisWorkbook.Sheets("Sheetname") verwendest.

2. Wie kann ich die Bildgröße manuell anpassen?
Über die Eigenschaften .Height und .Width im VBA-Code kannst Du die Größe des Bildes nach Deinen Wünschen anpassen.

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