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

worksheet selectionchange fonctionnement ?

10 réponses
Avatar
jo-dou
Bonjour,

je ne comprends pas =E0 quel moment se d=E9clenche worksheet selection
change

je traite en selection une cellule,

lorsque je saisie dans cette cellule puis valide par "entr=E9e" rien ne
se passe

il faut que je me repositionne sur la cellule pour que mon traitement
s'active.

mon but :

r=E9initialiser certaines cellules de la feuille en fonction du code
saisi en B11


mon code (all=E9g=E9)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'changement de code
If Target.Address =3D "$B$11" Then
MsgBox "changement de code"
end if

end sub

Merci pour votre aide

Jo=EBl

10 réponses

Avatar
JLuc
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
est utiliser losque tu selectionne une autre cellule : Target =
nouvelle cellule.
Private Sub Worksheet_Change(ByVal Target As Range)
est utilisé pour tout changement dans une cellule : Target = cellule
modifiée


avait soumis l'idée :
Bonjour,

je ne comprends pas à quel moment se déclenche worksheet selection
change

je traite en selection une cellule,

lorsque je saisie dans cette cellule puis valide par "entrée" rien ne
se passe

il faut que je me repositionne sur la cellule pour que mon traitement
s'active.

mon but :

réinitialiser certaines cellules de la feuille en fonction du code
saisi en B11


mon code (allégé)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'changement de code
If Target.Address = "$B$11" Then
MsgBox "changement de code"
end if

end sub

Merci pour votre aide

Joël


--
JLuc

Avatar
DarthMac
en fait il te faut :

Private Sub Worksheet_Change(ByVal Target As Range)

'changement de code
If Target.Address = "$B$11" Then
MsgBox "là ça marche"
End If

End Sub

Ce n'est pas ta sélection qui change mais la valeur qui change...

Dans ce que tu avais écris cela était vrai quand tu revenais dans la cellule
parce que tu lui demandais de réagir lorsqu'une case était sélectionnée, et
tu indiquais comme target la B11... pigé ?

Mac


Bonjour,

je ne comprends pas à quel moment se déclenche worksheet selection
change

je traite en selection une cellule,

lorsque je saisie dans cette cellule puis valide par "entrée" rien ne
se passe

il faut que je me repositionne sur la cellule pour que mon traitement
s'active.

mon but :

réinitialiser certaines cellules de la feuille en fonction du code
saisi en B11


mon code (allégé)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'changement de code
If Target.Address = "$B$11" Then
MsgBox "changement de code"
end if

end sub

Merci pour votre aide

Joël




Avatar
DarthMac
Rahhh, zut, grillé au poteau le temps de rédigé + d'être dérangé par
quelqu'un au taf...
scrogneugneu, je serai plus rapide la prochaine fois, pour une fois que je
savais la réponse ! ;-)

Mac


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
est utiliser losque tu selectionne une autre cellule : Target =
nouvelle cellule.
Private Sub Worksheet_Change(ByVal Target As Range)
est utilisé pour tout changement dans une cellule : Target = cellule
modifiée


avait soumis l'idée :
Bonjour,

je ne comprends pas à quel moment se déclenche worksheet selection
change

je traite en selection une cellule,

lorsque je saisie dans cette cellule puis valide par "entrée" rien ne
se passe

il faut que je me repositionne sur la cellule pour que mon traitement
s'active.

mon but :

réinitialiser certaines cellules de la feuille en fonction du code
saisi en B11


mon code (allégé)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'changement de code
If Target.Address = "$B$11" Then
MsgBox "changement de code"
end if

end sub

Merci pour votre aide

Joël


--
JLuc






Avatar
jo-dou
Pigé !!!!!

Merci beaucoup

Joël
Avatar
JLuc
DarthMac avait soumis l'idée :
Rahhh, zut, grillé au poteau le temps de rédigé + d'être dérangé par
quelqu'un au taf...


Relax, l'ami, c'est pas une course, oeuf corse ;-)

--
JLuc

Avatar
Michel Gaboly
Complément

Pour les événements Change ou SelectionChange, Target ne reprà ©sente pas forcément une seule cellule : si on sélectionne
un groupe de cellules, c'est l'ensemble qui est représenté par Target avec l'évenement SelectionChange.

De même si on sélectionne plusieurs cellules, et qu'on entre un e formule (ou une valeur) dans l'ensemble en une seule
opération (validation de toute une plage ou recopier vers le bas, pa r exemple), avec l'événement Change, Target
représente l'ensemble des cellules modifiées.

Par conséquent tout test du type

If Target.Address = "$B$11" Then

est insuffisant : cela ne fonctionne que si Target ne comporte qu'une cel lule.


Il faut tester l'intersection de Target et de B11 pour que le code marche dans tous les cas :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Range("B11"), Target) Is Nothing Then
' if b11 = ...
' ou Select Case B11 ...
End If
End Sub



Rahhh, zut, grillé au poteau le temps de rédigé + d'à ªtre dérangé par
quelqu'un au taf...
scrogneugneu, je serai plus rapide la prochaine fois, pour une fois que je
savais la réponse ! ;-)

Mac


Pour les événements Private Sub Worksheet_SelectionChange(By Val Target As Range)
est utiliser losque tu selectionne une autre cellule : Target =
nouvelle cellule.
Private Sub Worksheet_Change(ByVal Target As Range)
est utilisé pour tout changement dans une cellule : Target = ce llule
modifiée


avait soumis l'idée :
Bonjour,

je ne comprends pas à quel moment se déclenche worksheet se lection
change

je traite en selection une cellule,

lorsque je saisie dans cette cellule puis valide par "entrée" ri en ne
se passe

il faut que je me repositionne sur la cellule pour que mon traitement
s'active.

mon but :

réinitialiser certaines cellules de la feuille en fonction du co de
saisi en B11


mon code (allégé)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'changement de code
If Target.Address = "$B$11" Then
MsgBox "changement de code"
end if

end sub

Merci pour votre aide

Joël
--

JLuc







--
Cordialement,

Michel Gaboly
www.gaboly.com



Avatar
JLuc
Tu me rappele quelqu'un, j'hésite.... mais, on dirai que c'est moi :')
Au début, quand j'ai commencé à fréquenter ce SUPER forum, je me suis
pris les pieds dedans sans pouvoir en sortir lol

--
JLuc
Avatar
JLuc
Michel Gaboly avait soumis l'idée :
Complément

Pour les événements Change ou SelectionChange, Target ne représente pas
forcément une seule cellule : si on sélectionne un groupe de cellules, c'est
l'ensemble qui est représenté par Target avec l'évenement SelectionChange.

De même si on sélectionne plusieurs cellules, et qu'on entre une formule (ou
une valeur) dans l'ensemble en une seule opération (validation de toute une
plage ou recopier vers le bas, par exemple), avec l'événement Change, Target
représente l'ensemble des cellules modifiées.

Par conséquent tout test du type

If Target.Address = "$B$11" Then

est insuffisant : cela ne fonctionne que si Target ne comporte qu'une
cellule.


Il faut tester l'intersection de Target et de B11 pour que le code marche
dans tous les cas :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Range("B11"), Target) Is Nothing Then
' if b11 = ...
' ou Select Case B11 ...
End If
End Sub


Eh bien, je comprends mieux pourquoi j'utilisais Not Intersect
maintenant.
Merci de cette précision

--
JLuc

Avatar
JLuc
Si tu veux fréquenter ce (les) forum(s) régulièrement, tu devrais
passer par un lecteur de news, c'est plus pratique et plus convivial.
- Outlook Express fait çà très bien
- Mesnews aussi
- Pour Thunderbird c'est pareil
- ...

--
JLuc
Avatar
DarthMac
hello,

j'utilise... à la maison, mais ô surprise cela ne marchait pas au taff...
j'ai fait une demande pour que l'informatique ouvre le port adéquat dans le
Mur de Feu... Espérons qu'ils accepteront ;-)

Mac

"JLuc" a écrit dans le message de news:

Si tu veux fréquenter ce (les) forum(s) régulièrement, tu devrais passer
par un lecteur de news, c'est plus pratique et plus convivial.
- Outlook Express fait çà très bien
- Mesnews aussi
- Pour Thunderbird c'est pareil
- ...

--
JLuc