Grafik einfügen mit Verzeichnisvorgabe

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

Betrifft: Grafik einfügen mit Verzeichnisvorgabe
von: Olli
Geschrieben am: 01.12.2015 10:47:18

Hallo Zusammen
Benötige mal eine kleine Unterstützung mit folgendem Quellcode.
Möchte in eine selektierte Zelle über Application.Dialogs(xlDialogInsertPicture)
eine Grafik einfügen. Dies funktioniert auch soweit (s. Quellcode)
Was ich nicht hinkriege ist, das bei Application.Dialogs(xlDialogInsertPicture).Show nicht in ein vorgegebenes Verzeichnis gesprungen wird.
Habe es schon mit chdir und chdrive probiert aber leider ohne Erfolg.

Sub Bild_einfügen()
Dim x, rngS As Range
Set rngS = Selection
'Laufwerk und Verzeichnis bestimmen
ChDrive D:
ChDir "D:\Temp\"
    
    
    '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

Bild

Betrifft: AW: Grafik einfügen mit Verzeichnisvorgabe
von: Sepp
Geschrieben am: 01.12.2015 18:33:43
Hallo Olli,
die eingebauten Dialoge sind nicht sehr flexibel, bei xlDialogInsertPicture, kannst du den Pfad nicht vorgeben.
Versuch es mal so.

Sub Bild_einfügen()
Dim strFile As String
Dim objPic As Picture
Dim rngS As Range

Set rngS = Selection

With Application.FileDialog(msoFileDialogFilePicker)
  .InitialFileName = "E:\Forum"
  .Title = "Bilddatei auswählen"
  .ButtonName = "Bild Einfügen"
  .InitialView = msoFileDialogViewList
  .Filters.Clear
  .Filters.Add "Excel Dateien", "*.xls; *.xlsx; *.xlsm", 1
  .Filters.Add "Text Dateien", "*.txt; *.csv", 2
  .Filters.Add "Grafik Dateien", "*.jpg; *.gif; *.png; *.bmp", 3
  .Filters.Add "Alle Dateien", "*.*", 4
  .FilterIndex = 3
  If .Show = -1 Then strFile = .SelectedItems(1)
End With

If Len(strFile) Then
  Set objPic = Tabelle1.Pictures.Insert(strFile)
  With objPic
    .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


Set rngS = Nothing
Set objPic = Nothing
End Sub

Gruß Sepp


Bild

Betrifft: Statt Tabelle1
von: Sepp
Geschrieben am: 01.12.2015 18:39:29
... solltest du

Set objPic = rngS.Parent.Pictures.Insert(strFile)

schreiben!
Gruß Sepp


Bild

Betrifft: AW: Statt Tabelle1
von: Olli
Geschrieben am: 02.12.2015 10:48:03
Hallo Sepp
Hat alles funktioniert!!
War eine sehr gute Unterstützung.
Gruß Olli

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Grafik einfügen mit Verzeichnisvorgabe"