Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1408to1412
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Verknüpfungen ändern und auflisten

Verknüpfungen ändern und auflisten
10.02.2015 16:30:43
Dieter(Drummer)
Guten Tag an alle,
im Netz habe ich ein Makro gefunden, dass alle Verknüpfungen eine ganzen Mappe geändert werden können, wenn die Mappe, auf der sich die Verknüpfungen beziehen, verschoben wird. Das funktioniert gut.
Kann man das Makro so ändern und wie, dass alle Verknüpfungen vor der Änderung mit Angabe des Tabellenblattnamens, der Verknüpfung vor der Änderung und dann der neuen Verknüpfung, in einem neuen Tab.batt aufgelistet werden?
z.B.
Tabname: Xy1, alte Verknüpfung: 'c:\xx\abs.xlsm, neue Verknüpfung: 'c:\ab\abs.xlsm
Wäre toll, wenn das machbar wäre und bitte um Hilfe.
Gruß,
Dieter(Drummer)
  • 'Alle Vernüpfungen der Mappe änden!
    Sub Change_Link()
    Dim myLinks As Variant
    Dim NewSource As String
    Dim OldSource As String
    Dim i As Integer
    If MsgBox("Alle Verknüpfungen in der Mappe ändern?", vbYesNo + vbQuestion, "xyx: Info") = vbNo  _
    Then
    MsgBox "Es sind keine Änderungen erfolgt."
    Exit Sub
    End If
    myLinks = ThisWorkbook.LinkSources
    For i = 1 To UBound(myLinks)
    OldSource = CStr(myLinks(i))
    NewSource = Application.GetOpenFilename()
    ThisWorkbook.ChangeLink Name:=OldSource, Newname:=NewSource
    Next
    ' ThisWorkbook.UpdateLink
    End Sub
    

  • 5
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Verknüpfungen ändern und auflisten
    10.02.2015 17:11:28
    Rudi
    Hallo,
    aus meinem Archiv. Vielleicht hilft's dir weiter.
    Sub Formeln_suchen_extern()
    'Auflistung aller Formeln mit Bezug zu einer anderen Mappe
    Dim Wks As Worksheet, wksFormeln As Worksheet
    Dim blnIndex As Boolean, rngF As Range, rngFormeln As Range
    Dim lngZeile As Long, Kopf
    Application.ScreenUpdating = False
    blnIndex = False
    lngZeile = 2
    For Each Wks In ActiveWorkbook.Worksheets
    Set rngFormeln = Nothing
    On Error Resume Next
    Set rngFormeln = Wks.Cells.SpecialCells(xlCellTypeFormulas)
    On Error GoTo 0
    If Not rngFormeln Is Nothing Then
    For Each rngF In rngFormeln
    If InStr(rngF.FormulaLocal, "\[") > 0 Then
    If blnIndex = False Then
    Set wksFormeln = Worksheets.Add(after:=Sheets(Worksheets.Count))
    Kopf = Array("Blatt", "Zelle", "Zeile", "Spalte", "Formel")
    With wksFormeln
    .Name = "ext.Formeln"
    .Range("A1:E1") = Kopf
    End With
    blnIndex = True
    End If
    With wksFormeln
    .Cells(lngZeile, 1) = Wks.Name
    .Cells(lngZeile, 2) = rngF.Address(0, 0)
    .Cells(lngZeile, 3) = rngF.Row
    .Cells(lngZeile, 4) = rngF.Column
    .Cells(lngZeile, 5) = "'" & rngF.FormulaLocal
    .Columns.AutoFit
    End With
    lngZeile = lngZeile + 1
    End If
    Next rngF
    End If
    Next Wks
    Range("A1").Select
    If blnIndex = False Then
    MsgBox "Keine externen Bezüge vorhanden.", , ""
    Else
    wksFormeln.Activate
    End If
    Application.ScreenUpdating = True
    End Sub
    

    Gruß
    Rudi

    Anzeige
    AW: Danke Rudi, prima Lösung und sehr schnell
    10.02.2015 17:22:03
    Dieter(Drummer)
    Hi Rudi,
    das ist ja eine schnelle Lösung und funktioniert prima! So ist eine Dokumentaion aller externen Formeln einer Mappe möglich. So kann ich nach der evtl. Änderung ebenfalls eine Liste erstellen und diese dann in einer eigenen Tabelle gegenüberstellen.
    Danke und einen erfolgreichen Nachmittag.
    Gruß,
    Dieter(Drummer)

    AW: Wenn Tab "ext.Formeln" schon besteht
    10.02.2015 17:51:16
    Dieter(Drummer)
    Hi Rudi,
    kannst Du auch noch die Änderung einfügen, wenn das Blatt "ext. Formeln" schon besteht, dass es gelöscht wird und dann das neue Tab und die Liste erzeugt wird?
    Oder es wird einfach ein neues Tab angehängt und die Liste erzeugt, so existiert die alte und neue Liste.
    Wäre prima, wenn das noch geht. Wenn nicht, kann ich auch damit leben und lösche es vorher per Hand.
    Gruß,
    Dieter(Drummer)

    Anzeige
    AW: Wenn Tab "ext.Formeln" schon besteht
    11.02.2015 12:12:04
    Rudi
    Hallo,
    schreibt einfach drunter:
    Sub Formeln_suchen_extern()
    'Auflistung aller Formeln mit Bezug zu einer anderen Mappe
    Dim Wks As Worksheet, wksFormeln As Worksheet
    Dim rngF As Range, rngFormeln As Range
    Dim lngZeile As Long
    Const cstrWks As String = "ext.Formeln"
    Application.ScreenUpdating = False
    For Each Wks In ActiveWorkbook.Worksheets
    Set rngFormeln = Nothing
    On Error Resume Next
    Set rngFormeln = Wks.Cells.SpecialCells(xlCellTypeFormulas)
    On Error GoTo 0
    If Not rngFormeln Is Nothing Then
    For Each rngF In rngFormeln
    If InStr(rngF.FormulaLocal, "\[") > 0 Then
    On Error Resume Next
    Set wksFormeln = Worksheets(cstrWks)
    On Error GoTo 0
    If wksFormeln Is Nothing Then
    Set wksFormeln = Worksheets.Add(after:=Sheets(Worksheets.Count))
    With wksFormeln
    .Name = cstrWks
    .Range("A1:E1") = Array("Blatt", "Zelle", "Zeile", "Spalte", "Formel")
    End With
    End If
    With wksFormeln
    lngZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
    .Cells(lngZeile, 1) = Wks.Name
    .Cells(lngZeile, 2) = rngF.Address(0, 0)
    .Cells(lngZeile, 3) = rngF.Row
    .Cells(lngZeile, 4) = rngF.Column
    .Cells(lngZeile, 5) = "'" & rngF.FormulaLocal
    .Columns.AutoFit
    End With
    End If
    Next rngF
    End If
    Next Wks
    Range("A1").Select
    If wksFormeln Is Nothing Then
    MsgBox "Keine externen Bezüge vorhanden.", , ""
    Else
    wksFormeln.Activate
    End If
    Application.ScreenUpdating = True
    End Sub
    
    Gruß
    Rudi

    Anzeige
    AW: Danke Rudi, Deine Lösung ist gut
    11.02.2015 14:28:11
    Dieter(Drummer)
    Danke Rudi, für Deine Hilfe und Sorry, dass ich mich jetzt erst melde.
    Noch einen schönen Tag.
    Gruß,
    Dieter(Drummer)

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige