Cellules à valeurs liées

Résolu
Excelons -  
ccm81 Messages postés 11033 Statut Membre -

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. Excelons
     

    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
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     

    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
  3. Excelons
     

    Bonjour,

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

    Un grand merci pour votre aide.

    Cordialement

    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. ccm81 Messages postés 11033 Statut Membre 2 434
     

    De rien

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

    Cdlmnt

    0