Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

evenement si modification du contenu d'une cellule

5 réponses
Avatar
qeumarh
Bonjour,

je me permet de vous contacter car je planche sur un fichier excel mais je
rencontre quelques problemes. peut etre que vous pourrez me debbuguer.

voila l'objectif. je souhaite que si le contenu d'une cellule est modifié
alors automatiquement le contenu d'une autre cellule soit effacé. cette
derniere cellule permet d'acceder a une liste de choix.

bref, a chaque modification du contenu de la cellule, le choix effectué
auparavent est effacé. c'est une sort de remise a zero, de reset.

je suis parti sur le code suivant. que faut il modifier et/ou rajouter.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a
Dim b
a = 0
b = 0
a = Cells("A1").Value
If a <> b Then
Cells("B1").Clearscontents
b = a
End If
End Sub

si vous avez des suggestions, je vous remercie d'avance.

marc

5 réponses

Avatar
Jacky
Bonsoir,
'----------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [a1]) Is Nothing Then [b1].ClearContents
End Sub
'-----------------
Ps: Erreur de syntaxe ici:
Cells("B1").Clearscontents


Salutations
JJ

"qeumarh" a écrit dans le message de
news:
Bonjour,

je me permet de vous contacter car je planche sur un fichier excel mais je
rencontre quelques problemes. peut etre que vous pourrez me debbuguer.

voila l'objectif. je souhaite que si le contenu d'une cellule est modifié
alors automatiquement le contenu d'une autre cellule soit effacé. cette
derniere cellule permet d'acceder a une liste de choix.

bref, a chaque modification du contenu de la cellule, le choix effectué
auparavent est effacé. c'est une sort de remise a zero, de reset.

je suis parti sur le code suivant. que faut il modifier et/ou rajouter.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a
Dim b
a = 0
b = 0
a = Cells("A1").Value
If a <> b Then
Cells("B1").Clearscontents
b = a
End If
End Sub

si vous avez des suggestions, je vous remercie d'avance.

marc


Avatar
jps
bonsoir
plus généralement, tu ne peux pas utiliser Cells("A1") mais Range("A1") ou
(mais uniquement réservé aux cracks style AV ou JJ) [A1]
Cells(1,1) est correct : le premier chiffre représente l'index de la ligne
et le second celui de la colonne, soit A1 puisque la première cellule de la
première colonne)
d'ailleurs, quand tu es dans VBA, tape Cells( et regarde ce que l'aide
intuitive te dit....
jps

"qeumarh" a écrit dans le message de
news:
Bonjour,

je me permet de vous contacter car je planche sur un fichier excel mais je
rencontre quelques problemes. peut etre que vous pourrez me debbuguer.

voila l'objectif. je souhaite que si le contenu d'une cellule est modifié
alors automatiquement le contenu d'une autre cellule soit effacé. cette
derniere cellule permet d'acceder a une liste de choix.

bref, a chaque modification du contenu de la cellule, le choix effectué
auparavent est effacé. c'est une sort de remise a zero, de reset.

je suis parti sur le code suivant. que faut il modifier et/ou rajouter.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a
Dim b
a = 0
b = 0
a = Cells("A1").Value
If a <> b Then
Cells("B1").Clearscontents
b = a
End If
End Sub

si vous avez des suggestions, je vous remercie d'avance.

marc


Avatar
Jacky
Bonsoir JP,
(mais uniquement réservé aux cracks style AV ou JJ) [A1]
Crack JJ ???....AV dirait Pfff...

;o)
C'est vrai que j'aurais pu donner un peu plus d'explication...
Donc, ces trois codes, de syntaxe différente ont exactement la même
résultat:
Si "target" qui est la sélection en cours, (ici la cellule A1), est modifiée
ou effacée alors, la cellule B1 est vidée de son contenu.
"------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1]) Is Nothing Then [B1].ClearContents
End Sub
"-------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Cells(1, 1)) Is Nothing Then Cells(1,
2).ClearContents
End Sub
"-------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Range("B1").ClearContents
End Sub
'-------------
Me suis-je bien rattrapé, Président.
JJ (qui va faire dodo)


"jps" a écrit dans le message de news:
e7ryMf$
bonsoir
plus généralement, tu ne peux pas utiliser Cells("A1") mais Range("A1") ou
(mais uniquement réservé aux cracks style AV ou JJ) [A1]
Cells(1,1) est correct : le premier chiffre représente l'index de la ligne
et le second celui de la colonne, soit A1 puisque la première cellule de
la première colonne)
d'ailleurs, quand tu es dans VBA, tape Cells( et regarde ce que l'aide
intuitive te dit....
jps

"qeumarh" a écrit dans le message de
news:
Bonjour,

je me permet de vous contacter car je planche sur un fichier excel mais
je
rencontre quelques problemes. peut etre que vous pourrez me debbuguer.

voila l'objectif. je souhaite que si le contenu d'une cellule est modifié
alors automatiquement le contenu d'une autre cellule soit effacé. cette
derniere cellule permet d'acceder a une liste de choix.

bref, a chaque modification du contenu de la cellule, le choix effectué
auparavent est effacé. c'est une sort de remise a zero, de reset.

je suis parti sur le code suivant. que faut il modifier et/ou rajouter.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a
Dim b
a = 0
b = 0
a = Cells("A1").Value
If a <> b Then
Cells("B1").Clearscontents
b = a
End If
End Sub

si vous avez des suggestions, je vous remercie d'avance.

marc






Avatar
jps
très, très bien, jacky et ainsi le père brossollette ne pourra pas écrire :
degringolavit de brancha in brancham fecitque plouf
jps

"Jacky" a écrit dans le message de news:
Oi8UA8$
Me suis-je bien rattrapé, Président.
JJ (qui va faire dodo)


"jps" a écrit dans le message de news:
e7ryMf$
bonsoir
plus généralement, tu ne peux pas utiliser Cells("A1") mais Range("A1")
ou (mais uniquement réservé aux cracks style AV ou JJ) [A1]
Cells(1,1) est correct : le premier chiffre représente l'index de la
ligne et le second celui de la colonne, soit A1 puisque la première
cellule de la première colonne)
d'ailleurs, quand tu es dans VBA, tape Cells( et regarde ce que l'aide
intuitive te dit....
jps

"qeumarh" a écrit dans le message de
news:
Bonjour,

je me permet de vous contacter car je planche sur un fichier excel mais
je
rencontre quelques problemes. peut etre que vous pourrez me debbuguer.

voila l'objectif. je souhaite que si le contenu d'une cellule est
modifié
alors automatiquement le contenu d'une autre cellule soit effacé. cette
derniere cellule permet d'acceder a une liste de choix.

bref, a chaque modification du contenu de la cellule, le choix effectué
auparavent est effacé. c'est une sort de remise a zero, de reset.

je suis parti sur le code suivant. que faut il modifier et/ou rajouter.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a
Dim b
a = 0
b = 0
a = Cells("A1").Value
If a <> b Then
Cells("B1").Clearscontents
b = a
End If
End Sub

si vous avez des suggestions, je vous remercie d'avance.

marc










Avatar
qeumarh
merci beaucoup d'avoir pris le temps de me repondre.
ca marche nickel.
par contre, ca marche si je modifie le contenu d'une cellule, c'est a dire
si j'inscris par exemple 7 a la place de 3.
dans mon cas, le contenu de la cellule est issue d'une operation. la
modification dans cette cellule se fait automatiquement. moi je n'interviens
pas. dans ce cas, l'effacement de l'autre cellule ne marche pas. que faut il
modifier?

merci encore un fois

marc