Changement Valeur Cellule
Résolu
DPerron1976
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
DPerron1976 Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
DPerron1976 Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Comment vérifier la correspondance entre 2 cellules avant de pourvoir en modifier la valeur
Colonne R = Inventaire Total (Valeur modifier par utilisateur
Colonne S = Inventaire (Valeur calculée (R-U-W-Y))
Une fois toutes ces vérifications faite, l'utilisateur doit entrée la valeur de S dans la colonne R (trop long d'expliqué pourquoi (chargement en cours, chargement prévu, etc), donc c'est ce qu'il doit faire !)
Comment vérifier que l'utilisateur entre bien la même valeur dans R que dans S (genre : message Box pour valider si différent...)
Il faut en fait que je capte le moment où R change, valider si égale à S et agir ensuite. Quand je capter avec
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect([R:R], Target) Is Nothing Then Exit Sub
(...)
Il est trop tard parce que la valeur à déjà changer....
Merci beaucoup à l'avance
"
Comment vérifier la correspondance entre 2 cellules avant de pourvoir en modifier la valeur
Colonne R = Inventaire Total (Valeur modifier par utilisateur
Colonne S = Inventaire (Valeur calculée (R-U-W-Y))
Une fois toutes ces vérifications faite, l'utilisateur doit entrée la valeur de S dans la colonne R (trop long d'expliqué pourquoi (chargement en cours, chargement prévu, etc), donc c'est ce qu'il doit faire !)
Comment vérifier que l'utilisateur entre bien la même valeur dans R que dans S (genre : message Box pour valider si différent...)
Il faut en fait que je capte le moment où R change, valider si égale à S et agir ensuite. Quand je capter avec
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect([R:R], Target) Is Nothing Then Exit Sub
(...)
Il est trop tard parce que la valeur à déjà changer....
Merci beaucoup à l'avance
"
5 réponses
-
Bonjour,
Je comprend rien à ton truc.. :-)
Sauf que.. peut-être avec..Option Explicit Dim AncVal Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect([R:R], Target) Is Nothing Then AncVal = Target.Value End If End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect([R:R], Target) Is Nothing Then 'Je comprend pas quel comparaison y faut faire If AncVal = Target.Value Then '...... End If End If End Sub
A+-
Option Explicit
Dim AncValR, AncValS, OK, Ligne
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([R:R], Target) Is Nothing Then
AncValR = Target.Value
AncValS = Target.Offset(0, 1).Value
Ligne = Target.Row
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([R:R], Target) Is Nothing Then
If Target.Value = AncValS Then
Else
' Valeur entrée en R différente de la valeur en S ?
OK = MsgBox("Confirmer Valeur", vbYesNo, "Valeur Entrée différente de...")
If OK = 7 Then ' Si NON, remettre ancienne valeurs
'Bogue ici parce relance Private Sub Worksheet_Change(ByVal Target As Range)
Range("S" & Ligne) = AncValS
Range("R" & Ligne) = AncValR
End If
End If
End If
End Sub
-
-
Un petit merci ou autre aurais été bien apprécié.
Bref, comme la politesse n'est plus beaucoup enseignée je te répondrai malgré cela.Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect([R:R], Target) Is Nothing Then Application.EnableEvents = False If Target.Value <> AncValS Then '..... '..... '..... End If Application.EnableEvents = True End If -
Merci beaucoup et désolé pour les remerciements. J'ai copier-coller mon code par-dessus l'intro que j'avais écrite et publier sans m'en rendre compte. Sincèrement désolé encore une fois et merci encore !
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Comme un charme, merci... Faut juste faire le "pas-à-pas" au complet :) Parce qu'une fois le Application.EnableEvents à False, si tu arrêtes au milieu de la séquence pour déboguer, ça revient pas tout seul a True ! :) Mais on se fait avoir juste une fois ! :)
Merci encore une fois !