Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Klassiker:Verknüpfungen zu anderen Dateien löschen

Betrifft: Klassiker:Verknüpfungen zu anderen Dateien löschen von: imtis
Geschrieben am: 08.09.2004 10:23:22

Hallo zusammen,

ich habe jetzt einige Zeit in der Recherche verbracht und festgestellt, dass es zu meinem Anliegen zwar sehr viele Einträge, allerdings keine wirkliche Lösung gibt.
Es geht um das Löschen von Verknüpfungen zu anderen Dateien.
Zuerst frage ich mich, warum Excel die Möglichkeit bietet, Verknüpfungen zu anderen Dateien zu erstellen (Einfügen - Objekt - Von Datei erstellen - Verknüpfen), es jedoch in Excel anscheinend nicht möglich ist, diese wieder zu löschen.
Häufig wird hier die Datei "Findlink.xla" genannt. Ist das wirklich die einzige Möglichkeit??? Gibt es nicht zumindest eine VBA Lösung, existierende Verknüpfungen zu anderen Dateien zu entfernen?
Über ThisWorkbook.LinkSources(xlExcelLinks) kann ich ja alle existierenden Verknüpfungen ansprechen.

Vielen Dank im Voraus!

imitis

  


Betrifft: AW: Klassiker:Verknüpfungen zu anderen Dateien löschen von: HermannZ
Geschrieben am: 08.09.2004 11:11:52

Hallo imitis,

mit diesem Makro werden alle externen Verknüpfungen gelöst,

Sub ExterneVerknüpfungenAuflösen()
'// Auflösung externer Verknüpfungen in Tabellenblättern
Dim Tab1 As Object
Dim Cell1 As Object
Dim AlleFormeln As Object

On Error GoTo Fehlerbehandlung

    '// Schleife für alle Tabellenblätter der aktiven Mappe
    For Each Tab1 In ActiveWorkbook.Worksheets
        Set AlleFormeln = Tab1.Cells.SpecialCells(xlFormulas, 23)
        '// Schleife für alle Zellen, die Formeln enthalten
        '// Der Backslash ("\") in der Formel dient als Erkennungsmerkmal für
        '// das Vorliegen einer externen Verknüpfung
        For Each Cell1 In AlleFormeln
            If InStr(Cell1.Formula, "\") > 0 Then
                If Cell1.HasArray Then
                    '// Matrix kann nur als ganzes ersetzt weden
                    Cell1.CurrentArray.Select
                    Selection.Copy
                Else
                    Cell1.Formula = Cell1.Value
                End If
            End If
        Next Cell1
    Next Tab1
Exit Sub
    
Fehlerbehandlung:
    
    '// Fehler 1004 tritt auf, wenn Tabellenblatt keine Formeln enthält
    If Err = 1004 Then Resume Next Else             '//MeldungsDlg Fehler(FehlerNr)
    Resume Next
End Sub



Gruß hermann


  


Betrifft: passt...aber von: imtis
Geschrieben am: 08.09.2004 11:28:08

Hallo Hermann,

die Verknüpfungen werden alle soweit gelöscht, allerdings ist unter "Bearbeiten - Verknüpfungen" immer noch eine von vorher 5 Verknüpfungen zu sehen, gefragt wird nach dem Öffnen der Datei allerdings nicht mehr danach.

Vielen Dank,

imitis


  


Betrifft: AW: passt...aber von: Ulf
Geschrieben am: 08.09.2004 11:36:26

Links können auch in Charts und Namen stecken!

Ulf


  


Betrifft: irgendwie alles nicht so richtig... von: imtis
Geschrieben am: 08.09.2004 11:48:31

Hallo nochmal,

irgendwie arbeitet das Makro doch nicht so, wie es soll. Meine Idee war folgende: Lege ich die Verknüpfung auf die aktuelle Datei, sollte die Verknüpfung ja auch verschwinden. Leider führt folgender Quelltext noch zu einer Fehlermeldung:

-------------------
Sub VerknuepfungenLoeschen()

Dim AktuelleDatei As String
Dim Mappe As Workbook
Dim VLink As Variant
Dim i As Integer

AktuelleDatei = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name

Set Mappe = ActiveWorkbook

VLink = Mappe.LinkSources(xlExcelLinks)

If Not IsEmpty(VLink) Then
    
    For i = 1 To UBound(VLink)
        
        ActiveWorkbook.ChangeLink Name:= _
        VLink(i), newname:=AktuelleDatei, Type:=xlExcelLinks

    Next i

End If

End Sub

-------------------


Hat dazu jemand eine Idee?

Vielen Dank schonmal!

imtis


  


Betrifft: AW: irgendwie alles nicht so richtig... von: Andreas Walter
Geschrieben am: 08.09.2004 11:59:03

Du sagst nicht welche Fehlermeldung.

Aber kann es sein, dass wenn Du den Link von einer externen Datei auf die aktuelle Datei änderst, dann wird es nicht mehr als ein Link erkannt und die Anzahl von Links wird reduziert? nur so ein Gedanke. (Umweg: von hinten nach vorne)


  


Betrifft: Fehlermeldung: von: imtis
Geschrieben am: 08.09.2004 12:04:38

Die Fehlermeldung lautet:
-------------------------
"Die Formel enthält einen ungültigen Bezug zu einer externen Tabelle"

Der Fehler tritt auf im Abschnitt:
----------------------------------
ActiveWorkbook.ChangeLink Name:= _
VLink(i), newname:=AktuelleDatei, Type:=xlLinkTypeExcelLinks


  


Betrifft: AW: Fehlermeldung: von: Eugen
Geschrieben am: 08.09.2004 12:15:31

da kann man leider auch nicht mehr weiter helfen!


  


Betrifft: ??? von: imtis
Geschrieben am: 08.09.2004 12:18:20

Wie soll ich diesen Beitrag denn jetzt verstehen?


  


Betrifft: Problem lösbar, aber noch offen von: Andreas Walter
Geschrieben am: 08.09.2004 14:36:03

Es gibt eine Person, die immer wieder das Forum stört.
Bitte ignorieren.
Ich setze die Frage auf offen


  


Betrifft: AW: Problem lösbar, aber noch offen von: Andreas Walter
Geschrieben am: 08.09.2004 16:15:20

Ich habe es jetzt bei mir nachvollzogen.
Dein Makro funktioniert tadellos
Proibier mal
MsgBox "VORHER" & "--" & VLink(i) & "**" & AktuelleDatei
VOR dem Befehl. Vielleicht fällt Dir was auf.
Wie lautet die Formel genau, bei der das problem aufkreuzt.
Sprichst Du Bereiche per Namen an


 

Beiträge aus den Excel-Beispielen zum Thema "Klassiker:Verknüpfungen zu anderen Dateien löschen"