Cellules à valeurs liées

Résolu

Bonjour,

Je souhaiterai lier des cellules de telles sortes à ce que lorsque je modifie une donnée dans l'une, cela modifie dans l'autre et vice-versa. 

Je m'explique :

J'ai une feuille 1 dans laquelle l'utilisateur doit fournir des données d'entrée (valeurs manuelles et listes déroulantes) et une feuille 2 dans laquelle l'utilisateur doit pouvoir avoir re fournir ces mêmes données d'entrée en faisant en sorte que la modification de l'une modifie automatiquement l'autre.

Par exemple, si j'écris 32 dans la cellule B2 de la feuille 1, la cellule C3 de la feuille 2 prend la valeur 32. Puis je décide de mettre la valeur 80 dans la cellule C3 de la feuille 2, la cellule B2 de la feuille 1 prend la valeur 80.

Merci d'avance


Windows / Edge 107.0.1418.35

5 réponses

  1. Malheureusement je n'arrive pas à ouvrir ton fichier Excel (restrictions du pare feu entreprise) mais j'ai tester avec les macro en accedant au module des feuille et j'ai mis les lignes suivantes :

    Code Feuille 1 :

    If Not Intersect(Target, Range("B8")) Is Nothing Then
        
            Worksheets("Feuille 2").Range("Position").Value = Target
             
        End If

    Code Feuille 2 : 

    If Not Intersect(Target, Range("Position")) Is Nothing Then
        
            Worksheets("Feuille 1").Range("B8").Value = Target
             
        End If

    Sauf que ça créer visiblement une boucle infinie qui ferme le logiciel Excel ^^'

    0
    1. Bonjour

      Il fut inhiber la réaction à l’événement change (Application.EnableEvents) avant de copier et ne  pas oublier de le réactiver après

      Feuille 1

      Option Explicit
      
      Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Count > 1 Then Exit Sub
      If Not Intersect(Target, Range("B2")) Is Nothing Then
        Application.EnableEvents = False
        Sheets("Feuil2").Range("C3").Value = Target.Value
      End If
      Application.EnableEvents = True
      End Sub

      Feuille 2

      Option Explicit
      
      Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Count > 1 Then Exit Sub
      If Not Intersect(Target, Range("C3")) Is Nothing Then
        Application.EnableEvents = False
        Sheets("Feuil1").Range("B2").Value = Target.Value
      End If
      Application.EnableEvents = True
      End Sub

      Cdlmnt

      0
      1. Bonjour,

        C'est parfait, ça fait exactement ce dont j'avais besoin.

        Un grand merci pour votre aide.

        Cordialement

        0
        1. De rien

          Si c'est fini, merci de mettre le sujet à Résolu : les trois petits points dans ton premier message

          Cdlmnt

          0