Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Plage de cellule miroir

  • Initiateur de la discussion Initiateur de la discussion msieurrosé
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

msieurrosé

Guest
Bonjour,

Voici mon petit problème, je souhaiterai écrire une macro qui me permette d'avoir 2 plages de cellules dans 2 feuilles distinctes qui soient parfaitement identique (miroir) => lorsque je change la valeur d'une cellule de cette plage dans la feuille 1 cela change la valeur de la même cellule dans la feuille 2 et vice versa

exemple :

feuille 1 : plage de cellule (A1:C5) en miroir avec la même plage de la feuille 2
si je tape "chien" dans la cellule A2 de la feuille 1 => la cellule A2 de la feuille 2 prend la même valeur
si je tape "chat" dans la cellule A2 de la feuille 2 => la cellule A2 de la feuille 1 prend la valeur "chat" et non plus "chien"

voici la macro qui me permet de créer un miroir entre deux cellules définies d'une même page :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Application.EnableEvents = False
[B1] = Target
ElseIf Target.Address = "$B$1" Then
Application.EnableEvents = False
[A1] = Target
End If
Application.EnableEvents = True
End Sub

J'ai essayé de la modifier pour obtenir ce que je recherche mais sans succès, si vous avez une solution à me proposer ce serait très sympa

merci d'avance de votre aide

Jo
 
Re : Plage de cellule miroir

Bonsoir Msieurrosé, bonsoir le forum,

Tout d'abord bienvenu dans ce forum.

Je vous propose cette solution. Dans l'onglet Feuil1:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'si le changement à lieu ailleurs que dans la plage A1:C5, sort de la procédure
If Application.Intersect(Target, Range("A1:C5")) Is Nothing Then Exit Sub
'donne la valeur de la cellule éditée à la même cellule de l'onglet "Feuil2"
Sheets("Feuil2").Range(Target.Address).Value = Target.Value
End Sub
dans l'onglet Feuil2 :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'si le changement à lieu ailleurs que dans la plage A1:C5, sort de la procédure
If Application.Intersect(Target, Range("A1:C5")) Is Nothing Then Exit Sub
'donne la valeur de la cellule éditée à la même cellule de l'onglet "Feuil2"
Sheets("Feuil1").Range(Target.Address).Value = Target.Value
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…