Mise à jour liaison sans ouvrir les classeurs

Staycera -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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