Bazen bir formül başka bir çalışma kitabına başvuruyor olabilir. Bu durumda iki ihtimalden söz edebiliriz.

1-) Herhangi bir nedenle Bağlantı yapılan kitap yolu değişmiş olabilir.
2-) Bağlantılı kitaptaki veriler ile formülün güncellenmesi gerekebilir.

1652622020176


1652622041079


Mesela yukarıdaki iki şekle baktığımızda benim istediğim şu Kartların alındı dosya yolu sabit, dosya adı da sabit. Ancak Bağlantıları düzenle penceresinde görüldüğü üzere Kartlar.xlsm kitabının adında tarih bilgisi de var. Halbuki bağlantının Kartlar.xlsm için yapılması gerekiyor. İşte bunun gibi bağlantı hatalarını düzeltmek veya bağlantı yapılan çalışma kitabındaki değerler ile verilerinizi güncelleştirmek için aşağıdaki makroyu kullanabilirsiniz.
Kod:
Sub Auto_Open()
    Dim yol As String, link As Variant
    yol = "D:\SuleymanHarmony\HarmonyKartlar\Kartlar\Kartlar.xlsm"
    For Each link In ThisWorkbook.LinkSources(xlExcelLinks)
        If link <> yol Then
            Workbooks.Open yol
            ThisWorkbook.ChangeLink Name:=link, NewName:=yol, Type:=xlExcelLinks
            ThisWorkbook.UpdateLink Name:=yol, Type:=xlExcelLinks
        End If
    Next link
    ThisWorkbook.Save
End Sub

Sub Auto Open() => Çalışma Kitabı açılırken çalışacak olan makromuz.
Dim yol As String, link As Variant => Çalışma kitabını yolu ve (xlExcelLinks) tipinde dönebilmek için kullanacağımız değişkenler.
yol = "D:\SuleymanHarmony\HarmonyKartlar\Kartlar\Kartlar.xlsm" => Güncellenecek kitabın sabit olan yolu
For Each link In ThisWorkbook.LinkSources(xlExcelLinks) => Çalışma kitabındaki bağlantılarda dönecek olan döngü
If link <> yol Then => Eğer bağlantı linki ile yol farklı ise;
Workbooks.Open yol => Sabitleri içeren kitabı açıyoruz.
ThisWorkbook.ChangeLink Name:=link, NewName:=yol, Type:=xlExcelLinks => Değişmiş olan yol bilgisini sabit olan yol ile değiştiriyoruz.
ThisWorkbook.UpdateLink Name:=yol, Type:=xlExcelLinks => Sonra verileri sabit olan yoldaki kitabın bağlantıları ile güncelliyoruz.
End If => Eğer bağlantı linki ile yol farklı ise çalışna if sonu.
Next link => Bağlantı listesinde dönen döngünün sonu.
ThisWorkbook.Save =>Çalışma Kitabının kaydedilmesi.
  • Muhteşem
Tepkiler: admin