Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Bild implementieren

VBA Bild implementieren
09.01.2021 11:02:55
Vincent
Hallo Zusammen,
ich bin sehr unerfahren mit Excel VBA. Ich Versuche eine Arbeitsmappe zu erstellen mit der Funktion bei dem betätigen eines Buttons ein Bild in eine Zelle einzufügen (Hoch- und Querformatbilder, welche sich automatisch an die größe der Zelle anpassen sollen).
Hierbei kommt es jedoch ab und zu vor, dass das eingefügte Bild nicht in der ausgewählten Zelle ist.
Hier einmal mein Versuch:

Private Sub CommandButton1_Click()
Dim fNameAndPath     As Variant
Dim img              As Picture
Dim intLp            As Integer
Dim arrLeftandTop    As Variant
Dim arrWidth         As Variant
Dim arrHeight        As Variant
fNameAndPath = Application.GetOpenFilename(Title:="Bild einfügen")
If fNameAndPath = False Then Exit Sub
arrLeftandTop = Array("A4") 'Left and top range values
arrWidth = Array("A4") 'Width range values
arrHeight = Array("A4") 'Height range values
Set img = ActiveSheet.Pictures.Insert(fNameAndPath) 'Set image for insert
With img
.Left = ActiveSheet.Range(arrLeftandTop(intLp)).Left
.Top = ActiveSheet.Range(arrLeftandTop(intLp)).Top
.Width = ActiveSheet.Range(arrWidth(intLp)).Width
.Height = ActiveSheet.Range(arrHeight(intLp)).Height
.Placement = 1
.PrintObject = True
End With
End Sub

Kann mir jemand helfen oder sagen wo der Fehler ist?
Vielen Dank im Voraus!!!

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Bild implementieren
09.01.2021 11:35:10
Nepumuk
Hallo Vincent,
teste mal:
Option Explicit

Private Sub CommandButton1_Click()
    
    Dim vntPath As Variant
    Dim objShape As Shape
    
    vntPath = Application.GetOpenFilename(Title:="Bild einfügen")
    
    If vntPath <> False Then
        
        With Cells(4, 1)
            
            Set objShape = ActiveSheet.Shapes.AddPicture(Filename:=vntPath, LinkToFile:=msoFalse, _
                SaveWithDocument:=msoTrue, Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
            
        End With
        
        With objShape
            
            .Placement = xlMoveAndSize
            .ControlFormat.PrintObject = True
            
        End With
        
        Set objShape = Nothing
        
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: VBA Bild implementieren
09.01.2021 11:46:33
Vincent
Hey Nepumuk,
vielen Dank für deine schnelle Hilfe! Klappt super.
Jedoch werden nun die Hochformatsbilder auch an die Zelle angepasst, was ein Zoom des Bildes bedeutet.
Gibt es hier eine möglichkeit die Hochformatsbilder einfach in die Zelle einzufügen ohne sie zu zoomen?
Ich hatte das Problem mit dem Array gelöst.
Nochmals vielen Dank
AW: VBA Bild implementieren
09.01.2021 12:13:55
Nepumuk
Hallo Vincent,
so besser?
Option Explicit

Private Sub CommandButton1_Click()
    
    Dim vntPath As Variant
    Dim objShape As Shape
    
    vntPath = Application.GetOpenFilename(Title:="Bild einfügen")
    
    If vntPath <> False Then
        
        With Cells(4, 1)
            
            Set objShape = Shapes.AddPicture(Filename:=vntPath, LinkToFile:=msoFalse, _
                SaveWithDocument:=msoTrue, Left:=.Left, Top:=.Top, Width:=-1, Height:=-1)
            
        End With
        
        With objShape
            
            .LockAspectRatio = msoTrue
            .Width = Cells(4, 1).Width
            .Height = Cells(4, 1).Height
            If .Width > Cells(4, 1).Width Then .Width = Cells(4, 1).Width
            .Placement = xlMoveAndSize
            .ControlFormat.PrintObject = True
            
        End With
        
        Set objShape = Nothing
        
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: VBA Bild implementieren
09.01.2021 15:58:49
Vincent
Nochmal vielen Dank. Hochformatbilder fügt den super Skript leider nun gar nicht mehr ein.
Eine Idee woran es liegt? Ich habe etwas rumprobiert, jedoch keine zufriendenstellende Lösung gefunden.
AW: VBA Bild implementieren
09.01.2021 17:01:03
Vincent
Hey Nepumuk,
dein Skript funktioniert. Der Fehler liegt ganz bei mir. Entschuldige.
Gibt es noch die möglichkeit die Querformatbilder ganz in die Zelle zu dehnen, ohne dass das Hochformatbild gedeht wird? Ich bekomme es nicht hin.
Nochmals vielen Dank für deine ganze mühe!
AW: VBA Bild implementieren
09.01.2021 17:06:06
Nepumuk
Hallo Vincent,
häääääääääääää ?ß
entschuldige, aber ich versteh dich nicht. Querformatbilder werden doch über die "ganze" Zelle gestreckt.
Gruß
Nepumuk
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige