Bild in verbundene Zelle einfügen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Bild in verbundene Zelle einfügen
von: Brandt
Geschrieben am: 22.09.2015 09:51:00

Hallo Zusammen
Möchte gerne in eine verbundene Zelle ein Bild einfügen. Bild soll auf die maximale Breite zur Höhe eingepasst werden.
Ablauf sollte folgdender sein:
1.Wähle eine verbundene Zelle an
2.Über command button wird die Application.Dialogs(xlDialogInsertPicture).Show aufgerufen
3.Bild auswählen und in Zelle einpassen (Max. Breite zur Höhe)
4.Objektpositionierung "Von Zellposition und größe abhängig
Anbei mein vorhandener Quellcode

Private Sub cmd_picture_insert_Click()
'Dialogform aufrufen
x = Application.Dialogs(xlDialogInsertPicture).Show
'Bild in markierter Zelle einfügen
If x <> False Then
Selection.Top = ActiveCell.Top
Selection.Left = ActiveCell.Left
'Bild in max. Breite der Zelle einpassen
xbreite = ActiveCell.Width
        
     Selection.ShapeRange.Width = xbreite
     Selection.ShapeRange.LockAspectRatio = False
     Selection.Placement = xlMoveAndSize
Else
'Wenn kein Bild ausgewählt wurde ->MSgbox Meldung
MsgBox "No image selected!! "
End If
End Sub

Bild

Betrifft: AW: Bild in verbundene Zelle einfügen
von: EtoPHG
Geschrieben am: 22.09.2015 10:22:34
Hi Brandt,
Die Frage ist nur, was ist deine Frage?
Vielleicht so:

Private Sub cmd_picture_insert_Click()
    Dim x, rngS As Range
    If Selection.Cells(1, 1).MergeArea.Cells.Count = 1 Then
        MsgBox "No merged cells selected!!", vbCritical, "Selection"
        Exit Sub
    End If
    Set rngS = Selection
    'Dialogform aufrufen
    x = Application.Dialogs(xlDialogInsertPicture).Show
    'Bild in markierter Zelle einfügen
    If x <> False Then
        With Selection
            .Top = rngS.Top
            .Left = rngS.Left
            .ShapeRange.Width = rngS.Width
            .ShapeRange.LockAspectRatio = False
            .Placement = xlMoveAndSize
        End With
    Else
    'Wenn kein Bild ausgewählt wurde ->MSgbox Meldung
    MsgBox "No image selected!! "
    End If
End Sub
Gruess Hansueli

Bild

Betrifft: AW: Bild in verbundene Zelle einfügen
von: Brandt
Geschrieben am: 22.09.2015 10:50:01
Hallo Hansueli
Das geht schon genau in die Richtung was ich suche. Meine abschliessende Frage wäre noch: Kann man das Makro so anpassen, das bei ungleichem Verhältnis (Breite zu Höhe der zelle) auch die Höhe mit in die Zelle anpepasst werden kann (Ohne Verzerrung des Bildes)???
Wollte mit dem Makro die max. Abmessungen des Bildes zur Zelle ausnutzen!!
Bei verbundenen Zellen, wo die Breite kleiner ist als die funktioniert das ohne Probleme bei Dir!!!

Bild

Betrifft: ohne Verzerrung anpassen, geht nicht...
von: EtoPHG
Geschrieben am: 22.09.2015 11:51:12
Brandt,
Weil ja durch den Dialog ein x-beliebiges Bild eingefügt wird.
Das Bild müsste also das gleich Höhen:Breite Verhältnis haben wie die verbundenen Zellen. Das kann nie sichergestellt werden. Also kann nur entweder der Breite (was jetzt der Fall ist) oder der Höhe der Vorzug zur Skalierung gegeben werden. Du musst dich also entscheiden.
Gruess Hansueli

Bild

Betrifft: AW: ohne Verzerrung anpassen, geht nicht...
von: Brandt
Geschrieben am: 22.09.2015 12:02:22
Hallo Hansueli
Alles klar Passt
Habe die Zellen dementsprechend angepasst
Danke für die Unterstützung!!!

Bild

Betrifft: ohne Verzerrung anpassen, geht nicht...
von: EtoPHG
Geschrieben am: 22.09.2015 11:51:13
Brandt,
Weil ja durch den Dialog ein x-beliebiges Bild eingefügt wird.
Das Bild müsste also das gleich Höhen:Breite Verhältnis haben wie die verbundenen Zellen. Das kann nie sichergestellt werden. Also kann nur entweder der Breite (was jetzt der Fall ist) oder der Höhe der Vorzug zur Skalierung gegeben werden. Du musst dich also entscheiden.
Gruess Hansueli

Bild

Betrifft: AW: Bild in verbundene Zelle einfügen
von: Daniel
Geschrieben am: 22.09.2015 12:22:00
Hi
wenn das Bild verzerrungsfrei in die Zelle oder den Zellverbund eingefügt werden soll, dann musst du das Höhen/Breitenverhältnis von Bild und Zelle miteinander vergleichen.
Wenn das Höhen/Breitenverhältnis des Bildes grösser ist als das der Zelle, musst du die Höhen anpassen und die Breite automatisch mitändern lassen.
Ist das Höhen/Breitenverhältnis kleiner als das der Zelle, musst du die Breite ändern.

Private Sub cmd_picture_insert_Click()
            
'Dialogform aufrufen
If Application.Dialogs(xlDialogInsertPicture).Show Then
    
    'Bild in markierter Zelle einfügen
    With ActiveCell.MergeArea
                                
        '--- Bildgrösse
        If Selection.Height / Selection.Width > .Height / .Width Then
            Selection.Height = .Height
        Else
            Selection.Width = .Width
        End If
        
         '--- Bildposition
        Selection.Top = .Top
        Selection.Left = .Left
    
    
        '--- Bildeigenschaften
         Selection.ShapeRange.LockAspectRatio = False
         Selection.Placement = xlMoveAndSize
    
    
    End With
Else
    'Wenn kein Bild ausgewählt wurde ->MSgbox Meldung
    MsgBox "No image selected!! "
End If
    
End Sub
Gruß Daniel

Bild

Betrifft: AW: Bild in verbundene Zelle einfügen
von: Brandt
Geschrieben am: 22.09.2015 15:18:21
Hallo Daniel
Genau das hatte ich dann auch gemacht!
Aber danke für den Tip!!

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Bild in verbundene Zelle einfügen"