Anzeige
Archiv - Navigation
1672to1676
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

Objekt einbetten mit VBA

Objekt einbetten mit VBA
12.02.2019 16:02:55
Norbert
Hallo Spezialisten
ich soll etwa 60 pdf Files als Objekt in eine Tabelle als Symbol einbetten - das ja immer nur 1 file zulässt.
Geht das per VBA auch, dass ich über die Auswahlmöglichkeit des Verzeichnisses auf einmal alle pdf auswählen und einbetten kann?
Und dass sich die Symbole dann schön in einer etwa ab der 10. Zeile an) jeweils 8 Symbole neben- und 8 untereinander einreihen?
Wäre superr wenn das ginge.....
Gruss Norbert

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

Betreff
Datum
Anwender
Anzeige
AW: Objekt einbetten mit VBA
12.02.2019 19:23:10
Nepumuk
Hallo Norbert,
teste mal:
Option Explicit

Public Sub InsertObjects()
    Dim objFileDialog As FileDialog
    Dim objOLEObject As OLEObject
    Dim strFolder As String, strFilename As String
    Dim astrFiles() As String
    Dim ialngFileCount As Long, ialngIndex As Long
    Dim lngRow As Long, lngColumn As Long
    lngRow = 10
    lngColumn = 1
    Set objFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    With objFileDialog
        .Title = "Ordner auswählen"
        If .Show Then
            strFolder = .SelectedItems(1) & "\"
            strFilename = Dir$(strFolder & "*.pdf")
            Do Until strFilename = vbNullString
                Redim Preserve astrFiles(ialngFileCount)
                astrFiles(ialngFileCount) = strFilename
                ialngFileCount = ialngFileCount + 1
                strFilename = Dir$
            Loop
            For ialngIndex = LBound(astrFiles) To UBound(astrFiles)
                If lngColumn Mod 9 = 0 Then
                    lngRow = lngRow + 5
                    lngColumn = 1
                End If
                Set objOLEObject = ActiveSheet.OLEObjects.Add(Filename:=strFolder & _
                    astrFiles(ialngIndex), Link:=False, DisplayAsIcon:=True, IconFileName:= _
                    "C:\WINDOWS\Installer\{AC76BA86-7AD7-1031-7B44-AC0F074E4100}\PDFFile_8.ico", _
                    IconIndex:=0, IconLabel:=astrFiles(ialngIndex))
                With objOLEObject
                    .Left = Columns(lngColumn).Left
                    .Top = Rows(lngRow).Top
                End With
                lngColumn = lngColumn + 1
            Next
        End If
    End With
    Set objFileDialog = Nothing
End Sub

Es kann sein, dass der Icon-Pfad bei dir abweicht. Den richtigen bekommst du so heraus. Bette ein PDF manuell ein und lass dabei den Makrorekorder laufen.
Gruß
Nepumuk
Anzeige
AW: Objekt einbetten mit VBA
13.02.2019 08:02:42
Norbert
Hallo Nepumuk
Einfach genial - funktioniert super.
Nur wenn es nichts ausmacht, eine Bitte hätte ich noch.
Könnte ich nach der Auswahl des verzeichnisordners die pdf^s auch einzeln auswählen? In dieser Ausführung sehe ich nichts im Ordner.
Nur wenn es keine grossen Umstände macht...
Besten Dank nochmals
Gruss Norbert
AW: Objekt einbetten mit VBA
13.02.2019 09:28:56
Nepumuk
Hallo Norbert,
teste mal:
Option Explicit
Public Sub InsertObjects()
Dim objFileDialog As FileDialog
Dim objOLEObject As OLEObject
Dim strFolder As String, strFilename As String
Dim astrFiles() As String
Dim vntItem As Variant
Dim lngRow As Long, lngColumn As Long
lngRow = 10
lngColumn = 1
Set objFileDialog = Application.FileDialog(msoFileDialogFilePicker)
With objFileDialog
.AllowMultiSelect = True
With .Filters
If .Count > 1 Then Call .Delete
Call .Add(Description:="PDF-Dateien", Extensions:="*.pdf", Position:=1)
End With
.InitialFileName = "\\BKRFShl\Home\KafflM\Documents\Excel\Fragebogen\" 'Anpassen
.InitialView = msoFileDialogViewDetails
.Title = "PDF-Dateien auswählen"
If .Show Then
For Each vntItem In .SelectedItems
If lngColumn Mod 9 = 0 Then
lngRow = lngRow + 5
lngColumn = 1
End If
Set objOLEObject = ActiveSheet.OLEObjects.Add(Filename:=CStr(vntItem), _
Link:=False, DisplayAsIcon:=True, IconFileName:= _
"C:\WINDOWS\Installer\{AC76BA86-7AD7-1031-7B44-AC0F074E4100}\PDFFile_8.ico", _
_
IconIndex:=0, IconLabel:=Mid$(CStr(vntItem), InStrRev(CStr(vntItem), "\") +  _
1))
With objOLEObject
.Left = Columns(lngColumn).Left
.Top = Rows(lngRow).Top
End With
lngColumn = lngColumn + 1
Next
End If
End With
Set objFileDialog = Nothing
End Sub

Gruß
Nepumuk
Anzeige
AW: Objekt einbetten mit VBA
13.02.2019 09:43:40
Norbert
Hallo Nepumuk
super - bin wunschlos glücklich
Herzlichen Dank
Gruss Norbert

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige