Mise à jour liaison sans ouvrir les classeurs

Fermé
Signaler
-
Messages postés
16546
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 janvier 2022
-
Bonjour,

Je travaille actuellement sur deux classeurs excel que je n'ai pas créés, ils sont assez complexes.
Ils ont avec plusieurs liaisons, Le classeur A dépend du classeur B et vice-versa.
J'explique, lorsque mes deux classeurs sont ouverts : je rentre dans une cellule du classeur A un chiffre, il s'affiche automatiquement dans une cellule du classeur B et il s'additionne à d'autres chiffres issus du classeur A dans le classeur B. Avec ce résultat et une base de données du classeur B, des opérations sont effectuées et le résultat de celles-ci est affiché dans le classeur A.

En résumé : je mets à jour une cellule du classeur A, avec cette donnée le classeur B fait un calcul et me donne le résultat dans le classeur A.
Pour que ce résultat se mette a jour dans le classeur A je dois ouvrir les deux classeurs.
Les données du classeur A sont remplies par plusieurs personnes qui n'ont pas accès au classeur B (une partie des données de celui-ci sont confidentielles). Lorsqu'ils rentrent les données dans le classeur A, le résultat ne se met pas à jour.

Avez vous une solution pour que les classeurs se mettent à jour automatiquement sans avoir à ouvrir les deux classeurs ?

Merci d'avance


1 réponse

Messages postés
16546
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 janvier 2022
3 259
Bonjour,

Avez vous une solution pour que les classeurs se mettent à jour automatiquement sans avoir à ouvrir les deux classeurs ?
:-D

si on veut travailler sur les 2 classeurs restant fermés..... peut-être par transmission de pensée

plus sérieusement

pour récupérer une valeur d'une cellule (adresse connue) il existe une instruction en langage macro xl4

par exemple
Sub lire_ferme()
Option Explicit
Dim chemin As String
chemin = ThisWorkbook.Path ' A ADAPTER
Cells(4,3) = ExecuteExcel4Macro("'" & chemin & "\[source.xls]Feuil1'!R2C1") 'R2C1=A2
end sub

dans cette macro la valeur de la cellule A2 (résultat du calcul) dans la feuille 1 du classeur source s'inscrit dans la cellule C4 du classeur "cible" ("A" pour toi)

pour réaliser automatiquement à la saisie dans le classeur A, il te faut utiliser une macro dite "événementielle" du type "worksheets_change"

tu as aussi d'autres méthodes dans la rubrique "astuces" de CCM

Et surtout
https://silkyroad.developpez.com/VBA/ClasseursFermes/
pour l'événementiel
https://silkyroad.developpez.com/VBA/EvenementsFeuille/

0