Excel VBA – Verknüpfungen entfernen

Excel VBA - Verknüpfungen entfernen

Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.
In diesem Beitrag zeige ich Ihnen wie Sie über VBA Verknüpfungen aus Arbeitsmappen entfernen und mit Festwerten ersetzen können.

111 VBA Makros die Ihr Leben leichter machen. Egal ob Sie Einsteiger oder fortgeschrittener Anwender sind – in diesem Buch finden Sie Lösungen für Ihre alltäglichen Aufgaben. Keine Vorkenntnisse notwendig.

Verknüpfung zu einer anderen Excel-Mappe
In unserer Mappe verweisen wir auf eine andere Mappe. Mit dem folgenden Makro ersetzen wir diese Verknüpfung durch Festwerte.
Zunächst deklarieren wir ein so genanntes Array, also ein Datenfeld, in den wir später alle Verknüpfungen schreiben. Das Datenfeld wird als Typ Variant definiert. Als Nächstes benötigen wir einen Zähler um die Einträge zu zählen.

Sub VerknuepfungFestwert()
Dim ArrayV As Variant
Dim CntLine As Long

End Sub

Nun füllen wir das Array mit Verknüpfungen der aktiven Mappe. Die Methode LinkSources gibt ein Array mit allen Links in der Arbeitsmappe zurück. Als Typ geben wir xlLinkTypeExcelLinks an, das heißt die Verknüpfung führt zu einem Excel-Arbeitsblatt.

Sub VerknuepfungFestwert()
Dim ArrayV As Variant
Dim CntLine As Long

ArrayV = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)

End Sub

Unternehmensplanung mit SAP BPC

111 VBA Makros die Ihr Leben leichter machen

Wollen Sie Ihre langweiligen Routineaufgaben loswerden? Möchten Sie Excel an Ihre Bedürfnisse anpassen, Berechnungen automatisieren, eigene Dialogfelder erstellen und vieles mehr? Dieses Buch zeigt Ihnen, wie Sie Ihre Aufgaben schnell und einfach mit VBA erledigen.

Das Datenfeld ArrayV ist nun gefüllt. Als nächstes lesen wir den Inhalt über eine Schleife aus und ändern diesen in Festwerte um. Dazu gehen wir alle Einträge vom ersten bis zum letzten durch. Die Funktion UBound liefert uns den letzten Eintrag.

Sub VerknuepfungFestwert()
Dim ArrayV As Variant
Dim CntLine As Long

ArrayV = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)

For CntLine = 1 To UBound(ArrayV)

Next CntLine
End Sub

Innerhalb der Schleife wird die Verknüpfung mit der Methode BreakLink in einen Festwert umgewandelt.

Sub VerknuepfungFestwert()
Dim ArrayV As Variant
Dim CntLine As Long

ArrayV = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)

For CntLine = 1 To UBound(ArrayV)

ActiveWorkbook.BreakLink Name:=ArrayV(CntLine), Type:=xlLinkTypeExcelLinks

Next CntLine
End Sub

Führen Sie das Makro mit F5 aus und kontrollieren Sie das Ergebnis. Alle Verknüpfungen wurden durch Festwerte ersetzt.
Verknüpfungen wurden mithilfe von VBA entfernt
Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.

Beeindrucke deinen Chef mit coolen Excel Tricks!

  • Lasse dich von deinen Kollegen nicht abhängen!
  • Spare Zeit und nutze diese für angenehmere Dinge
  • Steigere deine Produktivität und Effizienz
  • Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
  • Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
20 Excel Tricks

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. 100% sicher.

Quellen und weiterführende Literatur:
Bernd Held – VBA mit Excel: Das umfassende Handbuch

Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

4 Kommentare
  1. Sandra Carenso
    Sandra Carenso sagte:

    Das Makro funktioniert nicht (mehr). Es erzeugt den Fehler: „Laufzeitfehler „13“.:
    Typenkonflikt“

    Gibt es dazu eine Lösung?

    Antworten
    • Denis
      Denis sagte:

      Hallo Sandra,
      habe es gerade ausprobiert. Funktioniert bei mir einwandfrei. Ich nutze Excel 2013. Welche Version benutzt du?
      Und was genau steht in deinem Link? Worauf verlinkst du?
      Viele Grüße
      Denis

      Antworten
      • Sandra Carenso
        Sandra Carenso sagte:

        Hallo Denis,
        ich nutze Excel für MAC.

        Inzwischen habe ich das „Problem“ gefunden :-)
        Ich habe das Makro in einer Datei ausgeführt, in der gar keine Verlinkungen mehr enthalten waren. Dann kam die o.g. Fehlermeldung.

        Hat sich also erledigt. Danke trotzdem für deine schnelle Antwort!
        Gruß
        Sandra

        Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar zu Denis Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.