Retrancher 1 à une valeur existant dans une cellule
2 réponses
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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <jdel5@wanadoo.fr> a écrit dans le message news:
bernff$bgn$2@news-reader5.wanadoo.fr...
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
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
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
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
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