Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Objekt per VBA in Excel-Datei einfügen

Objekt per VBA in Excel-Datei einfügen
03.01.2018 12:01:12
Robert
Hallo Community, ich benötige Hilfe, vielleicht kann wer helfen oder ihr sagt mir: "No Way".
Ich kenne mich mit VBA fast garnicht aus und hoffe deshalb auf Eure Hilfe.
Ich bin in einem Stahlhandelsunternehmen für die Werkszeugnisverwaltung zuständig und habe selbige bereits von Anfang an mitbetreut und optimiert, soweit es mir möglich ist. Zur Versendung an unsere Kunden habe ich eine Excel Datei erstellt.
In Zelle A2 gebe ich eine Artikelnummer ein, anhand dieser wird mir dann per Index/Vergleich Zelle B2 und C2 mit der Artikelbeschreibung ausgefüllt. Das klappt super.
Nun muss ich in Spalte D2 einen Dateinamen eintragen und dann manuell die zugehörige Datei in Zelle E2 einfügen. Manuell funktioniert das alles, aber gibt es auch eine Möglichkeit, dass ich in Zelle D2 nur noch den Dateinamen manuell eingebe, sodass dann in Zelle E2 per Formel auf der Festplatte in einem Ordner nach dem Dateinamen gesucht wird und die Datei (PDF) als Objekt eingefügt wird?
Vielleicht kann jemand helfen?
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Objekt per VBA in Excel-Datei einfügen
03.01.2018 12:22:50
Rudi
Hallo,
sowas?
Sub aaa()
Const strPfad = "c:\DerOrdner\" 'anpassen
If Dir(strPfad & Range("D2"), vbNormal) = "" Then
MsgBox "Die Datei gibt es nicht!", vbInformation, "Gebe bekannt..."
Else
Range("E2").Select
ActiveSheet.OLEObjects.Add Filename:=strPfad & Range("D2")
End If
End Sub

Gruß
Rudi
Anzeige
AW: Objekt per VBA in Excel-Datei einfügen
03.01.2018 14:56:24
Robert
Super, danke! Das bringt mich der Sache nun schon näher.
Folgende weitere Probleme:
1. Ich möchte die Ausgabe des Objektes nur als Symbol in Zelle E2 angezeigt bekommen, bei Doppelklick auf das Symbol soll sich dann die Datei öffnen
2. Im Optimalfall will ich nur den Dateinamen eingeben, ohne die Ändung, es handelt sich ja immer um PDF-Dateien
Anzeige
AW: Objekt per VBA in Excel-Datei einfügen
04.01.2018 10:16:36
Robert
Da mit dem Symbol habe ich nun hinbekommen. Nun noch 2 weitere Fragen:
1. Ist es möglich, dass ich nicht immer die Dateiendung mit in Zelle D6 eingeben muss?
2. Möchte ich diesen Code auch in die folgenden Zeilen mit übernehmen, insofern die Spalte A einen Inhalt hat. Ist das auch irgendwie möglich?
Hier der aktuelle Code:
Sub aaa()
Const strPfad = "Z:\temp\" 'anpassen
If Dir(strPfad & Range("D6"), vbNormal) = "" Then
MsgBox "Die Datei gibt es nicht!", vbInformation, "Gebe bekannt..."
Else
Range("E6").Select
ActiveSheet.OLEObjects.Add(Filename:=strPfad & Range("D6"), Link:=False, _
DisplayAsIcon:=True, IconFileName:="T:\PFT\pft.ico", _
IconIndex:=0, IconLabel:="").Select
End If
End Sub

Anzeige
AW: Objekt per VBA in Excel-Datei einfügen
04.01.2018 12:25:57
Rudi
Hallo,
solange A ab A6 gefüllt ist, ohne Eingabe der Endung:
Sub aaa()
Dim rng As Range
Const strPfad = "Z:\temp\" 'anpassen
Set rng = Range("A6")
Do While rng  ""
If Dir(strPfad & rng.Offset(, 3) & ".pdf", vbNormal) = "" Then
MsgBox "Die Datei gibt es nicht!", vbInformation, "Gebe bekannt..."
Else
rng.Offset(, 4).Select
ActiveSheet.OLEObjects.Add(Filename:=strPfad & rng.Offset(, 3) & ".pdf", Link:=False, _
DisplayAsIcon:=True, IconFileName:="T:\PFT\pft.ico", _
IconIndex:=0, IconLabel:="").Select
End If
Set rng = rng.Offset(1)
Loop
End Sub

Gruß
Rudi
Anzeige
AW: Objekt per VBA in Excel-Datei einfügen
04.01.2018 12:54:32
Robert
Klappt super! Genauso soll es sein, vielen Dank!!!
2 Fragen noch,:
1. Die Eingabespalte ist nun "G", nun wollte ich einfach "A6" in "G6" ändern, da findet Excel aber keine Datei!? Wenn ich "A6" lasse, funktioniert es. Was muss ich noch ändern?
2. Das Icon wird jetzt in Spalte E ausgegeben, lässt sich das auch noch beeinflussen, sodass es in Spalte "I" ausgegeben wird?
Anzeige
AW: Objekt per VBA in Excel-Datei einfügen
04.01.2018 12:59:39
Robert
Punkt 2 habe ich gerade selbst lösen können, vielleicht kannst du mir noch zu Punkt 1 helfen?
AW: Objekt per VBA in Excel-Datei einfügen
04.01.2018 13:02:39
Rudi
Hallo,
also Dateiname in G statt D?
rng.Offset(, 6) statt rng.Offset(, 3)
und 2.
rng.Offset(, 8).Select
Gruß
Rudi
AW: Objekt per VBA in Excel-Datei einfügen
04.01.2018 13:54:45
Robert
Super, vielen Dank!!!! Wahnsinn, was alles geht, wenn man sich auskennt!! ;-)
Anzeige
AW: Objekt per VBA in Excel-Datei einfügen
04.01.2018 15:08:08
Robert
Habe aber leider nochmal paar Fragen:
Wie kann ich einen Ausschnitt aus diesem erstellten Arbeitsblatt an eine E-Mail anhängen? Ich habe diesen Code gefunden:
 Sub BereichAlsEMailVersenden()
Dim Empänger, Titel As String
Dim n As Range
Empfänger = "Test@aol.com"
Titel = "Excel-Bereich als Anhang"
Set n = Application.InputBox _
("Wählen Sie den Bereich aus, den Sie versenden möchten", Type:=8)
Range(n.Address).Select
Selection.Copy
Worksheets.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs "Anhang.xls"
Application.Dialogs(xlDialogSendMail).Show Empfänger, Titel
End Sub
1. Problem: Es wird zwar ein neues Arbeitsblatt des benötigten Ausschnittes erstellt, aber die Formatierung wird nicht eingehalten, das heißt, Zellgrößen passen nicht.
2. Kann ich den Code so ändern, dass ich jedes mal nach einer E-Mail gefragt werde?
Ich nhoffe, das ist nicht zu viel verlangt... ;-)
Anzeige
AW: Objekt per VBA in Excel-Datei einfügen
04.01.2018 16:59:28
Robert
Problem 2 habe ich mir selbst beantwortet, manchmal ist man aber auch echt doof...
Problem 1 besteht weiter und neue Frage: Ich würde gern einen kurzen Text und meine Standardsignatur per VBA gleich mit in die Mail einfügen... Wie ist da der Befehl?
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel-Objekte per VBA einfügen: So geht's


Schritt-für-Schritt-Anleitung

Um ein Excel-Objekt per VBA in eine Excel-Datei einzufügen, kannst du den folgenden Code verwenden. Dieser sucht nach einem Dateinamen in einer bestimmten Zelle und fügt das entsprechende PDF-Dokument als Objekt ein.

  1. Öffne deine Excel-Datei.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.
  4. Kopiere den folgenden Code in das Modul:
Sub DateiEinfügen()
    Const strPfad = "C:\DeinOrdner\" ' Passe den Pfad an
    Dim dateiName As String

    dateiName = Range("D2").Value ' Nimm den Dateinamen aus Zelle D2

    If Dir(strPfad & dateiName & ".pdf") = "" Then
        MsgBox "Die Datei gibt es nicht!", vbInformation, "Hinweis"
    Else
        Range("E2").Select
        ActiveSheet.OLEObjects.Add Filename:=strPfad & dateiName & ".pdf", _
            Link:=False, DisplayAsIcon:=True, _
            IconFileName:="C:\Icons\deinIcon.ico", IconIndex:=0, IconLabel:=""
    End If
End Sub
  1. Schließe den VBA-Editor und kehre zur Excel-Datei zurück.
  2. Führe das Makro aus: ALT + F8, wähle DateiEinfügen und klicke auf "Ausführen".

Dieser Code ermöglicht es dir, eine PDF-Datei in Excel einzufügen, indem du nur den Dateinamen ohne die Endung in Zelle D2 eingibst.


Häufige Fehler und Lösungen

  • Objekt kann nicht eingefügt werden Excel: Stelle sicher, dass der Dateipfad korrekt ist und die Datei tatsächlich existiert.
  • Excel Objekt kann nicht eingefügt werden: Prüfe, ob Excel die benötigten Berechtigungen hat, um auf den Ordner zuzugreifen.
  • Fehlende Dateiendung: Wenn du die Dateiendung nicht manuell eingeben möchtest, stelle sicher, dass der Code entsprechend angepasst ist, um die Endung automatisch hinzuzufügen.

Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch die Funktion "Objekt einfügen" in Excel nutzen:

  1. Klicke auf die Registerkarte "Einfügen".
  2. Wähle "Objekt" und dann "Objekt aus Datei erstellen".
  3. Suche die gewünschte PDF-Datei und füge sie ein.

Diese Methode ist jedoch weniger automatisiert und erfordert manuelle Schritte für jede Datei.


Praktische Beispiele

Hier sind einige Beispiele, wie du den VBA-Code anpassen kannst:

  • Einfügen in mehreren Zeilen: Um Objekte für mehrere Zeilen einzufügen, kannst du eine Schleife verwenden:
Sub MehrereDateienEinfügen()
    Dim rng As Range
    Set rng = Range("D2")

    Do While rng.Value <> ""
        Call DateiEinfügen ' Rufe die vorherige Subroutine auf
        Set rng = rng.Offset(1, 0) ' Gehe zur nächsten Zeile
    Loop
End Sub
  • PDF in Excel einbetten: Benutze den Befehl ActiveSheet.OLEObjects.Add mit den entsprechenden Parametern, um das PDF-Dokument einzubetten.

Tipps für Profis

  • Verwende Fehlerbehandlung: Füge On Error Resume Next und On Error GoTo 0 hinzu, um Fehler im Code elegant zu handhaben.
  • Icons anpassen: Du kannst eigene Icons verwenden, um die Darstellung deiner eingebetteten PDF-Dateien zu individualisieren.
  • Ereignisgesteuertes Einfügen: Nutze Ereignisse wie Worksheet_Change, um den Code automatisch auszuführen, wenn sich der Inhalt einer Zelle ändert.

FAQ: Häufige Fragen

1. Wie kann ich eine PDF-Datei in eine Excel-Datei einfügen?
Du kannst eine PDF-Datei mit dem VBA-Code einfügen, der die Datei als OLE-Objekt hinzufügt.

2. Funktioniert das auch in Excel 365?
Ja, der bereitgestellte VBA-Code funktioniert in Excel 2010 bis 365.

3. Wie füge ich ein PDF-Dokument als Link ein?
Ändere den Parameter Link:=False zu Link:=True im VBA-Code, um die Datei als Hyperlink einzufügen.

4. Kann ich mehrere Dateien gleichzeitig einfügen?
Ja, indem du eine Schleife implementierst, die durch eine Liste von Dateinamen iteriert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige