Beth se demande s’il existe un moyen de déterminer s’il existe d’autres classeurs dépendant du classeur qu’elle a ouvert. Elle sait comment trouver les liens précédents vers son classeur ouvert mais pas les liens dépendants.

Beth a un nouvel emploi et elle ne veut pas risquer de modifier un classeur sans savoir sur quels autres fichiers elle pourrait avoir un impact.

Si vous avez le classeur A et le classeur B et que le classeur B comprend un lien vers le classeur A, le classeur B dépend du classeur A et le classeur A est un précédent du classeur B.

Dans le classeur B, vous pouvez facilement trouver les liens utilisés dans le classeur; vous saurez que le classeur A est un précédent du classeur B. Comme Beth l’a dit, elle sait comment trouver ces informations.

Dans le classeur A, il n’existe aucun moyen de déterminer que le classeur B a un lien vers le classeur A et dépend donc du classeur A. Ainsi, il est possible d’apporter des modifications au classeur A qui peuvent, par inadvertance, affecter le classeur B. Par exemple, vous pourrait modifier une plage nommée ou renommer une feuille de calcul ou supprimer des informations que vous pensez ne plus être nécessaires. La prochaine fois que vous ouvrez le classeur B, vous aurez une mauvaise surprise car les informations dont il dépendait dans le classeur A n’étaient plus disponibles.

Certaines modifications que vous apportez dans le classeur A peuvent ne pas affecter le classeur B. Par exemple, vous devez pouvoir ajouter des feuilles de calcul, ajouter des plages nommées et éventuellement insérer des colonnes ou des lignes. Dans tous ces cas, Excel peut s’adapter naturellement aux modifications sans affecter le classeur B.Le problème est que vous ne saurez pas s’il y a eu un effet négatif jusqu’à ce que vous ouvriez plus tard le classeur B.Et vous ne sauriez même pas ouvrir le classeur B à moins que vous savait à l’avance qu’il y avait une relation entre les deux classeurs.

Une façon de contourner le problème consiste à ouvrir tous les classeurs auxquels vous pouvez penser, en même temps, puis à utiliser les outils d’audit d’Excel pour vérifier les dépendances. Cela peut fonctionner correctement si vous avez un nombre très limité de classeurs sur votre système. Cela ne fonctionne pas très bien si vous avez beaucoup de classeurs ou si les classeurs sont sur un réseau.

Si vous avez vos classeurs dans un emplacement défini sur votre système local (le tout dans un seul dossier), vous pouvez essayer d’utiliser une macro pour déterminer les dépendances. Les étapes suivantes parcourent tous les classeurs Excel dans un répertoire donné et identifient les classeurs liés à votre classeur actuellement ouvert par des formules.

Sub DiscoverDependentFiles()

Dim i As Integer     Dim iFile As String     Dim fLink As Variant     Dim sLink As String     Dim myFldr As String     Dim curFile As String

'Change the string here to look     'for a different link / file name     sLink = "[FileA.xlsm]"

curFile = ThisWorkbook.Name     'Change the string here to look     'in a different folder     myFldr = "C:\Users\User\mySub\"



'Look for both xlsx and xlsm extensions     iFile = Dir(myFldr & "*.xls?", vbNormal)

i = 1     'Loop through all of the files in the folder     Do While iFile <> ""

If iFile <> curFile Then             Workbooks.Open Filename:=myFldr & iFile             Set fLink = Cells.Find(What:=sLink, _               After:=ActiveCell, LookIn:=xlFormulas, _               LookAt:=xlPart, SearchOrder:=xlByRows, _               SearchDirection:=xlNext, MatchCase:= _               False, SearchFormat:=False)

If UCase(TypeName(fLink)) <> UCase("Nothing") Then                 Windows(curFile).Activate                 'Record names of dependent files                 'in your open workbook                 Worksheets(1).Range("D" & (i)).Value = _                   ActiveWorkbook.Name                 i = i + 1             End If             Workbooks(iFile).Close False         End If         iFile = Dir     Loop End Sub

Cette approche devrait fonctionner correctement dans des situations simples. Dans certains cas, cependant, une telle macro ne peut fournir qu’une solution partielle, car les liens peuvent être masqués à de nombreux endroits – dans les noms Excel, les zones de texte, les graphiques et d’autres objets. Il y a toujours une chance que quelque chose ne soit pas vérifié. Le résultat de cela est que, étant donné que vos modifications peuvent affecter d’autres classeurs qui dépendent de celui que vous modifiez, vous souhaiterez peut-être effectuer une sauvegarde du fichier de classeur avant d’apporter des modifications.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (7799) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.

Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

lien: / excel-Discovering_Dependent_Workbooks [Découverte des classeurs dépendants].