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

Bilder einf Antwort auf älteren Beitrag

Bilder einf Antwort auf älteren Beitrag
18.01.2021 20:02:52
Patrick
Hallo,
ich hatte vor einiger Zeit eine Frage gestellt und hatte leider keine Zeit rechtzeitig zu Antworten, aus diesem Grund ein neuer Beitrag.
Der Beitrag um den es geht ist dieser: https://www.herber.de/forum/archiv/1792to1796/t1794232.htm
der Code von ralf_b funktioniert an und für sich. Nur die Größe der Bilder wird auf die Zellhöhe und Zellbreite angepasst und somit wird das Bild verzerrt. die Bilder sollen aber nur an die Höhe der Zelle angepasst und das Seitenverhältnis vom Original beibehalten werden.
Mein aktueller Code:

Sub Covereinfügen()
Dim Dat As String
Dim Zelle As Range
Dim ScaleA As Double
'Bild auswählen
Dat = Application.GetOpenFilename(, , "Bild auswählen", , False)
Set Zelle = Cells(Range("A1").End(xlDown).Row + 0, 11)
'Bild einfügen
Select Case Right(Dat, 3)
Case "bmp", "jpg", "tif", "gif", "jpeg"
ActiveSheet.Shapes.AddPicture Dat, False, True, Zelle.Left, Zelle.Top, Zelle.Width,  _
Zelle.Height
With ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
ScaleA = WorksheetFunction.Min(Zelle.Width / .Width, Zelle.Height / .Height)
.Height = Zelle.Height * ScaleA
End With
Case Else
MsgBox "Sie haben kein gültiges Bild ausgewählt"
End Select

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bilder einf Antwort auf älteren Beitrag
18.01.2021 20:11:14
Nepumuk
Hallo Patrick,
teste mal:
Option Explicit

Public Sub Covereinfügen()
    
    Dim Dat As Variant
    Dim Zelle As Range
    Dim ScaleA As Double
    Dim objShape As Shape
    
    'Bild auswählen
    Dat = Application.GetOpenFilename(, , "Bild auswählen", , False)
    
    If Dat <> False Then
        
        Set Zelle = Cells(Cells(1, 1).End(xlDown).Row, 11)
        
        'Bild einfügen
        Select Case LCase$(Right$(Dat, 3))
                
            Case "bmp", "jpg", "tif", "gif", "jpeg"
                
                Set objShape = ActiveSheet.Shapes.AddPicture(Dat, msoFalse, msoTrue, Zelle.Left, Zelle.Top, -1, -1)
                
                With objShape
                    
                    .LockAspectRatio = msoTrue
                    
                    ScaleA = WorksheetFunction.Min(Zelle.Width / .Width, Zelle.Height / .Height)
                    
                    .Height = Zelle.Height * ScaleA
                    
                End With
                
                Set objShape = Nothing
                Set Zelle = Nothing
                
            Case Else
                
                MsgBox "Sie haben kein gültiges Bild ausgewählt"
                
        End Select
    End If
End Sub

Gruß
Nepumuk
Anzeige
Rechtzeitiges Feedback sollte aber ...
19.01.2021 06:54:25
lupo1
... ein Bestandteil der Zeit sein, die Du für Foren aufwendest. Bei Herber sollten es nicht mehr als 18 Stunden sein. Kann man vorher einplanen.
Das ist so, wie wenn Du bei McDonalds Dein Tablett nach dem Essen zu dem Trolley bringst.
AW: Rechtzeitiges Feedback sollte aber ...
20.01.2021 16:32:34
Patrick
Hallo lupo1
in jedem Leben geschehen unvorhersehbare Dinge, die dafür sorgen das geplante Abläufe nicht Planungsgemäß durchgeführt werden können (z.B. Krankheit)
Leider löst deine Nachricht nicht einmal ansatzweise mein Problem.
Gruß Patrick
Ach ja, aber ....
21.01.2021 09:03:51
Werner
Hallo,
...du hast nicht nur eine Antwort von Lupo bekommen.
Und dee Lösungsvorschlag von Nepumuk ist es nicht wert, dass du darauf reagierst?
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige