Clever-Excel-Forum

Normale Version: Lästige Meldung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,
ich bekomme wenn ich meine Excel liste aufmache plötzlich immer eine Meldung:

Diese Arbeitsmappe enthät Verknüpfungen zu mindestens einer externen Quelle die möglicherweise nicht sicher sind.
Wenn sie den Verknüfungen vertrauen, aktualiesieren sie sie , um die neuesten Daten abzurufen. Andernfalls können sie mit der vorhandenen Datei arbeiten.

Egal was ich nachher drücke die Meldung erscheint beim nächsten Mal wieder. ..
wie kann ich dieses lästige Fenster loswerden ???

Gruß
Fred
Hi Fred,

schau mal, zu welcher Datei die Verknupfung besteht. Diese musst du kappen, wenn sie nicht gewollt ist.
Hallo Fred,

eventuell hilft es auch, die verknüpfte Datei zu einem vertrauenswürdigen Dokument zu machen, den Ordner mit der Datei zu einem vertrauenswürdigen Ordner oder die Datei in einen solchen zu legen.

"Falsche" Verknüpfungen entstehen zuweilen auch, wenn man ein Blatt von einer Datei in eine andere kopiert und in der Quelldatei Namen definiert werden. Da kommen manchmal welche mit, die man gar nicht braucht ...
Also leider funktioniert gar nichts, wenn wir die angegebene Datei löschen kommt die Meldung immer noch obwohl es die Datei nicht mehr gibt....
Der Kollege hat wohl etwas kopiert, was weiß er aber selbst nicht mehr...
Hi Fred,


Zitat:Also leider funktioniert gar nichts, wenn wir die angegebene Datei löschen kommt die Meldung immer noch obwohl es die Datei nicht mehr gibt....

besteht eventuell noch eine Verknüpfung zu einer zweiten Datei? Oder ist die bisher gelöschte als Kopie noch in irgend einem anderen Pfad drin?
Hallo,

der folgende Code ist aus irgendeinem Newsletter - bitte an einer Kopie der Datei ausprobieren.

Code:
Sub VerknuepfungenLoeschen()
Dim varLinks
Dim lngLinkCount As Long
Dim i As Long
Dim strLinkedFile As String
Dim lngChrPos As Long
Dim objRefName As Name
Dim strExtRef As String
Dim objWSh As Worksheet
Dim LinkRange As Range
Dim ar As Range

  If MsgBox("Wollen Sie alle externen " & _
     "Verknuepfungen loeschen und durch die " & _
     "entsprechenden Werte ersetzen?", vbYesNo) _
      = vbYes Then
    varLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
    If IsArray(varLinks) Then
      lngLinkCount = UBound(varLinks)
      For i = 1 To lngLinkCount
        strLinkedFile = varLinks(i)
        Do
          lngChrPos = InStr(1, strLinkedFile, "\")
          strLinkedFile = _
              Right(strLinkedFile, _
              Len(strLinkedFile) - lngChrPos)
        Loop Until lngChrPos = 0
        For Each objWSh In ActiveWorkbook.Worksheets
          Set LinkRange = GetLinkRange(objWSh, _
                          strLinkedFile)
          If Not LinkRange Is Nothing Then
            For Each ar In LinkRange.Areas
              ar.Value = ar.Value2
            Next ar
          End If
        Next objWSh
      Next i
    End If
    For Each objRefName In ActiveWorkbook.Names
      If InStr(1, objRefName.RefersTo, ".xl") > 0 Then
        strExtRef = objRefName.Name
        For Each objWSh In ActiveWorkbook.Worksheets
          Set LinkRange = GetLinkRange(objWSh, strExtRef)
          If Not LinkRange Is Nothing Then
            For Each ar In LinkRange.Areas
              ar.Value = ar.Value2
            Next ar
          End If
        Next objWSh
        objRefName.Delete
      End If
    Next objRefName
  End If
End Sub

Function GetLinkRange _
    (objSheet As Worksheet, _
    strSearchFor As String) _
    As Range
Dim TempCell As Range
Dim TempRange As Range
Dim strTempAdr As String

  With objSheet.UsedRange
    Set TempCell = _
        .Find _
        (What:=strSearchFor, _
        LookIn:=xlFormulas, _
        LookAt:=xlPart)
    If Not TempCell Is Nothing Then
      strTempAdr = TempCell.Address
      Set TempRange = TempCell
      Do
        Set TempCell = .FindNext(TempCell)
        If Not TempCell Is Nothing Then
          Set TempRange = Application.Union(TempRange, _
                                            TempCell)
        End If
      Loop While _
          Not TempCell Is Nothing _
          And TempCell.Address <> strTempAdr
    End If
  End With
  Set GetLinkRange = TempRange
End Function
Hallöchen,
Unabhängig von der Wirksamkeit müsstest Du die Verknüpfung löschen und nicht nur die Datei...