OVH Cloud OVH Cloud

Retrancher 1 à une valeur existant dans une cellule

2 réponses
Avatar
jdel5
Bonjour
Soit dans la colonne B, une série de dates et dans la colonne C, des valeurs
quelconques.
Je cherche à écrire une Macro permettant, si l'on entre une date en A1,
qu'une valeur 1 soit retranchée à la valeur contenue dans la cellule C
correspondant à cette date dans la colonne B. La valeur obtenue devant
remplacer la précédente.
J'arrive à sélectionner la cellule à droite de la date mais je n'arrive pas
à effectuer un calcul par rapport à la valeur se trouvant dans cette
cellule.
J'utilise Excel 97 avec Windows NT
Merci de m'aider
Jdel5

2 réponses

Avatar
AV
Dans le module de la feuille (clic droit --> visualiser le code)

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Address <> "$A$1" Then Exit Sub
x = [match(A1,B:B,0)]
Range("C" & x).Value = Range("C" & x).Value + 1
End Sub

AV

"jdel5" a écrit dans le message news:
bernff$bgn$
Bonjour
Soit dans la colonne B, une série de dates et dans la colonne C, des valeurs
quelconques.
Je cherche à écrire une Macro permettant, si l'on entre une date en A1,
qu'une valeur 1 soit retranchée à la valeur contenue dans la cellule C
correspondant à cette date dans la colonne B. La valeur obtenue devant
remplacer la précédente.
J'arrive à sélectionner la cellule à droite de la date mais je n'arrive pas
à effectuer un calcul par rapport à la valeur se trouvant dans cette
cellule.
J'utilise Excel 97 avec Windows NT
Merci de m'aider
Jdel5







Avatar
André
Ce n'est pas entièrement satisfaisant mais ça tourne et
intervient pour toutes les dates identiques de la colonne.

Code de feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As
Range)
Dim Cel As Range
If Target.Address <> "$A$1" Then
MsgBox "La date doit-être copiée en A1",
vbOKOnly, "Cellule non autorisée"
End If
If [A1] <> 0 Then
For Each Cel In ActiveSheet.[B1:B10] 'Avec [B:B], c'est
long !
If Cel.Value = [A1].Value Then
Cel.Offset(0, 1).Value = Cel.Offset(0, 1).Value - 1
End If
Next Cel
End If
[A1].Clear
End Sub