gerardcjf
Messages postés47Date d'inscriptionmardi 3 juillet 2007StatutMembreDernière intervention26 décembre 2013
-
22 juil. 2010 à 10:39
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
22 juil. 2010 à 14:40
Bonjour,
A l'intérieur d'un feuille en haut de celle-ci j'ai une cellule (disons B3) dont l'utilisateur peur faire varier la valeur (les valeurs de celle-ci ont été prédéfinis via la fonction données-validation d'Excel)
En bas de la feuille, j'ai une cellule identique à B3 mais en B265.
J'aimerais réaliser la chose suivante :
Quand l'utilisateur change la valeur de B3, que B265 prenne la valeur changée de B3
Quand l'utilisateur change la valeur de B265, que B3 prenne la valeur changée de B265.
Avez vous une idée à me proposer ?
PS : j'avais commencé avec ceci ... mais c'a marche pô !
Sub test1()
If Range("B265").Value = Range("B3").Value Then
Exit Sub
Else
Range("B265").Value = Range("B3").Value
End If
End Sub
Sub test2()
If Range("B265").Value = Range("B3").Value Then
Exit Sub
Else
Range("B265").Value = Range("B3").Value
End If
End Sub
Je vous remercie par avance de votre aide !
A voir également:
Comparaison de valeurs de cellule et prise en compte du changement de valeur
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 22 juil. 2010 à 11:32
Salut
Je te propose d'utiliser la détection de changement de Worksheet_Change :
Quand la cellule sur laquelle le changement vient d'avoir lieu est B3 ou B265, on recopie l'un sur l'autre.
Difficulté : En modifiant B265 avec le contenu de B3, cette même Sub se déclenchera aussi : il faut donc bypasser la détection pendant ce changement --> Utilisation d'un booléen déclaré en Static
Le Static est la même chose que Dim sauf que la variable conservera sa valeur entre deux cycles d'appel :
Private Sub Worksheet_Change(ByVal Target As Range)
Static bChangementVolontaire As Boolean
If Not bChangementVolontaire Then
If Target.Address = "$B$3" Then
bChangementVolontaire = True
Range("B265").Value = Target.Value
bChangementVolontaire = False
ElseIf Target.Address = "$B$265" Then
bChangementVolontaire = True
Range("B3").Value = Target.Value
bChangementVolontaire = False
End If
End If
End Sub
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)