Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ActiveWorkbook.LinkSources

Forumthread: ActiveWorkbook.LinkSources

ActiveWorkbook.LinkSources
30.01.2006 17:54:05
Tristan
Hallo Forum,
kurze Frage.
Ich habe das unten genannte Makro möchte aber nicht das Er alle
Verknüpfungen aktualisiert, sondern nur bestimmt ( es gibt
auf dem Blatt mehrere Verknüpfungen die mit verschiedenen Tabellen
aktualisiert werden soll)
Wie sag ich Ihm das Er nur ausgewählte Beispiel
Zelle C12;C13;C14 aktualisieren soll ?

Private Sub CommandButton1_Click()
Dim var As Variant
Dim iCounter As Integer
x = CurDir
Dim sName As String, sPath As String, sExt As String
ChDrive ("D:\") ' Hier die Ablage eingeben
ChDir ("D:\excel\report") ' Hier den Pfad eingeben
sName = Application.GetOpenFilename("Excel Files (*.xls), *.xls", , "Bitte die Datei auswählen die aktualisiert werden soll")
ChDrive x
ChDir x
If sName = "Falsch" Then Exit Sub
var = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(var) Then
For iCounter = 1 To UBound(var)
ActiveWorkbook.ChangeLink _
Name:=var(iCounter), newname:=sName
Next iCounter
End If
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveWorkbook.LinkSources
30.01.2006 18:51:27
Isolde
Geht nicht
AW: ActiveWorkbook.LinkSources
30.01.2006 19:06:07
Tristan
Geht nicht ist ein Ausdruck,
mit dem Menschen um sich werfen,
für die es einfacher ist, die Welt so zu akzeptieren wie sie ist
statt das Risiko einzugehen sie zu verändern.
Geht nicht ist keine Tatsache,
es ist eine Meinung
Geklaut von Addidas
Anzeige
;
Anzeige

Infobox / Tutorial

ActiveWorkbook.LinkSources: Verknüpfungen gezielt aktualisieren


Schritt-für-Schritt-Anleitung

Um nur bestimmte Verknüpfungen in einem Excel-Dokument mit VBA zu aktualisieren, kannst du das folgende Makro verwenden. Es ermöglicht dir, spezifische Zellbereiche auszuwählen, deren Verknüpfungen aktualisiert werden sollen.

Private Sub CommandButton1_Click()
    Dim var As Variant
    Dim iCounter As Integer
    Dim sName As String

    ' Pfad anpassen
    ChDrive ("D:\") 
    ChDir ("D:\excel\report") 
    sName = Application.GetOpenFilename("Excel Files (*.xls), *.xls", , "Bitte die Datei auswählen die aktualisiert werden soll")

    If sName = "Falsch" Then Exit Sub

    var = ActiveWorkbook.LinkSources(xlExcelLinks)

    If Not IsEmpty(var) Then
        ' Aktualisiere nur die Links aus den Zellen C12, C13 und C14
        Dim linksToUpdate As Variant
        linksToUpdate = Array("C12", "C13", "C14")

        For iCounter = LBound(linksToUpdate) To UBound(linksToUpdate)
            Dim linkName As String
            linkName = Range(linksToUpdate(iCounter)).Value

            If Not IsEmpty(linkName) Then
                ActiveWorkbook.ChangeLink Name:=linkName, newname:=sName
            End If
        Next iCounter
    End If
End Sub

Dieses Makro verwendet die ActiveWorkbook.LinkSources Funktion, um alle Links im Arbeitsbuch abzurufen. Es aktualisiert dann nur die Links, die in den Zellen C12, C13 und C14 angegeben sind.


Häufige Fehler und Lösungen

  • Fehler: "Falsch" wird zurückgegeben

    • Lösung: Stelle sicher, dass du eine gültige Excel-Datei auswählst. Der Dialog zum Öffnen der Datei wird angezeigt, wenn der Pfad korrekt ist.
  • Fehler: Verknüpfungen werden nicht aktualisiert

    • Lösung: Überprüfe, ob die Zellwerte in C12, C13 und C14 tatsächlich die Namen der Links enthalten, die aktualisiert werden sollen.

Alternative Methoden

Falls du keine VBA-Makros verwenden möchtest, kannst du die Verknüpfungen auch manuell über die Excel-Benutzeroberfläche aktualisieren. Gehe hierzu zu:

  1. Daten > Abfragen und Verbindungen > Verknüpfungen bearbeiten
  2. Wähle die Verknüpfungen aus, die du aktualisieren möchtest, und klicke auf Ändern.

Praktische Beispiele

Ein praktisches Beispiel wäre, wenn du mehrere Excel-Dokumente hast, die auf verschiedene Datenquellen verweisen. Du kannst die oben vorgestellte VBA-Lösung anpassen, um gezielt nur die Verknüpfungen zu aktualisieren, die für deinen aktuellen Bericht relevant sind.


Tipps für Profis

  • Nutze die Debug.Print Anweisung, um den Fortschritt während der Ausführung des Makros zu verfolgen. Dies hilft dir, Fehler zu identifizieren.

  • Experimentiere mit anderen Zellbereichen oder füge Logik hinzu, um die Verknüpfungen basierend auf bestimmten Bedingungen zu aktualisieren.

  • Wenn du regelmäßig mit ActiveWorkbook.LinkSources arbeitest, erstelle eine benutzerdefinierte Funktion, um häufig wiederkehrende Aufgaben zu automatisieren.


FAQ: Häufige Fragen

1. Wie kann ich alle Verknüpfungen gleichzeitig aktualisieren?
Du kannst die ActiveWorkbook.UpdateLink Methode verwenden, um alle Links im Arbeitsbuch auf einmal zu aktualisieren.

2. Was passiert, wenn die Zellwerte in C12, C13 und C14 leer sind?
Wenn die Zellen leer sind, wird das Makro diese Links ignorieren und keine Aktualisierung durchführen. Stelle sicher, dass sie gültige Linknamen enthalten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige