Cellules à valeurs liées
Résoluccm81 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
-
Bonjour
Bizarre comme question. Possible avec macro
https://www.cjoint.com/c/LKyqAkOgA3B
Alt-F11 pour accéder au code dans les modules des feuilles 1 et 2
Cdlmnt
-
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 IfCode Feuille 2 :
If Not Intersect(Target, Range("Position")) Is Nothing Then
Worksheets("Feuille 1").Range("B8").Value = Target
End IfSauf que ça créer visiblement une boucle infinie qui ferme le logiciel Excel ^^'
-
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 SubFeuille 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 SubCdlmnt
-
Bonjour,
C'est parfait, ça fait exactement ce dont j'avais besoin.
Un grand merci pour votre aide.
Cordialement
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
De rien
Si c'est fini, merci de mettre le sujet à Résolu : les trois petits points dans ton premier message
Cdlmnt