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

Worksheet_SelectionChange ? Tiens, tiens !

10 réponses
Avatar
Ptit Louis
Bonjour,
Soit un classeur tout neuf que j'ouvre et dans lequel je saisis dans la
cellule A1, sélectionnée par défaut : "A". Je termine ma commande par Entrée.
Je me déplace jusqu'en cellule A2 pour y saisir : "B". Je termine ma
commande par Entrée.
Je me déplace jusqu'en cellule A3 pour y saisir : "C" et je sélectionne la
cellule A4.

J'obtiens les événements suivants :
Worksheet_Change : Target $A$1
worksheet_SelectionChange : Target $A$1
Worksheet_Change : Target $A$2
worksheet_SelectionChange : Target $A$2
Worksheet_Change : Target $A$3
worksheet_SelectionChange : Target $A$4

Quelqu'un peut-il m'expliquer la raison des Worksheet_SelectionChange
intempestifs ?
Remarque valable pour Excel 2003 et 2007.
Nota : le déplacement de la sélection après saisie n'est pas autorisé dans
les options.

Merci de vos réponses !

10 réponses

Avatar
LSteph
Bonjour,

Donne déjà le code employé on y verra quelquechose!

Cordialement.

--
lSteph

On 17 nov, 07:06, Ptit Louis
wrote:
Bonjour,
Soit un classeur tout neuf que j'ouvre et dans lequel je saisis dans la
cellule A1, sélectionnée par défaut : "A". Je termine ma commande p ar Entrée.
Je me déplace jusqu'en cellule A2 pour y saisir : "B". Je termine ma
commande par Entrée.
Je me déplace jusqu'en cellule A3 pour y saisir : "C" et je sélection ne la
cellule A4.

J'obtiens les événements suivants :
Worksheet_Change : Target $A$1
worksheet_SelectionChange : Target $A$1
Worksheet_Change : Target $A$2
worksheet_SelectionChange : Target $A$2
Worksheet_Change : Target $A$3
worksheet_SelectionChange : Target $A$4

Quelqu'un peut-il m'expliquer la raison des Worksheet_SelectionChange
intempestifs ?
Remarque valable pour Excel 2003 et 2007.
Nota : le déplacement de la sélection après saisie n'est pas autori sé dans
les options.

Merci de vos réponses !


Avatar
LSteph
..sinon outre le code employé, je répondais à peu près ceci il y a
quelque temps sur un sujet similaire

Ce n'est pas un bug mais
une curiosité tout de même

lorsque tu modifies ou valides une cellule, ce n'est pas sa
modification qui invoque le SelectionChange mais le retour chariot,
car de fait on change d'adresse!
Essaye , au lieu de valider avec entrée valide avec le V vert dans la
barre de formule. Si ta selection n'a pas bougé , pas de
SelectionChange!


C'est la où cela va devenir curiosité car si dans le menu tu vas
décocher Déplacer sélection après validation (Outils Option
Modification )
la façon dont tu valides continue à motiver l'évennement, à savoir
le V vert (pas de réaction),
la tabulation, réaction ..normal ça déplace qq'il en soit)
la touche Entrée sur une seule cellule, réaction, pourtant on a pas
bougé,......... là cela devient effectivement curieux!
Et pourtant si on fait Ctrl+Entrée (pas de réaction)
Et si on fait entrée pour valider une cellule sur selection de
plusieurs , pas de réaction§?


--
lSteph



On 17 nov, 07:06, Ptit Louis
wrote:
Bonjour,
Soit un classeur tout neuf que j'ouvre et dans lequel je saisis dans la
cellule A1, sélectionnée par défaut : "A". Je termine ma commande p ar Entrée.
Je me déplace jusqu'en cellule A2 pour y saisir : "B". Je termine ma
commande par Entrée.
Je me déplace jusqu'en cellule A3 pour y saisir : "C" et je sélection ne la
cellule A4.

J'obtiens les événements suivants :
Worksheet_Change : Target $A$1
worksheet_SelectionChange : Target $A$1
Worksheet_Change : Target $A$2
worksheet_SelectionChange : Target $A$2
Worksheet_Change : Target $A$3
worksheet_SelectionChange : Target $A$4

Quelqu'un peut-il m'expliquer la raison des Worksheet_SelectionChange
intempestifs ?
Remarque valable pour Excel 2003 et 2007.
Nota : le déplacement de la sélection après saisie n'est pas autori sé dans
les options.

Merci de vos réponses !


Avatar
Ptit Louis
Bonjour,

J'étais en déplacement, ce qui explique mon silence.

Tout le problème est visible à partir d'un classeur vierge, mais contenant
ces 6 lignes de code :
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "Change " & Target.Address
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "Sélection change " & Target.Address
End Sub

Il suffit de changer ce qui nous fait plaisir dans la feuille surveillée, et
les messages nous indiquent ce qu'il se passe.

Mon HENORME problème vient du fait que je vérifie qu'une cellule change de
valeur pour modifier la valeur, le format de plusieurs cellules dans
plusieurs feuilles et que des objets y sont placés et/ou déplacés, modifiés
en conséquence, mais tant que la sélection ne change pas, il n'y a pas de
modification supplémentaire pour les mises en pages et autres réjouissances.
Et là tout bouge tout le temps, Excel passe son temps à modifier des
éléments sans que cela ne soit ni demandé, ni SOUHAITABLE et il y a ainsi
une forte perte de temps, sans compter que les feuilles ressemblent à de
vrais sapins de Noël alors que l'on ne devrait rien voir !

Le déplacement de la sélection après saisie n'étant pas activé (et pas
souhaitable du tout) y a-t-il un moyen pour éviter les modifications
apportées (vu de l'utilisateur) par le non changement de sélection ?


"LSteph" a écrit :

...sinon outre le code employé, je répondais à peu près ceci il y a
quelque temps sur un sujet similaire

Ce n'est pas un bug mais
une curiosité tout de même

lorsque tu modifies ou valides une cellule, ce n'est pas sa
modification qui invoque le SelectionChange mais le retour chariot,
car de fait on change d'adresse!
Essaye , au lieu de valider avec entrée valide avec le V vert dans la
barre de formule. Si ta selection n'a pas bougé , pas de
SelectionChange!


C'est la où cela va devenir curiosité car si dans le menu tu vas
décocher Déplacer sélection après validation (Outils Option
Modification )
la façon dont tu valides continue à motiver l'évennement, à savoir
le V vert (pas de réaction),
la tabulation, réaction ..normal ça déplace qq'il en soit)
la touche Entrée sur une seule cellule, réaction, pourtant on a pas
bougé,......... là cela devient effectivement curieux!
Et pourtant si on fait Ctrl+Entrée (pas de réaction)
Et si on fait entrée pour valider une cellule sur selection de
plusieurs , pas de réaction§?


--
lSteph



On 17 nov, 07:06, Ptit Louis
wrote:
> Bonjour,
> Soit un classeur tout neuf que j'ouvre et dans lequel je saisis dans la
> cellule A1, sélectionnée par défaut : "A". Je termine ma commande par Entrée.
> Je me déplace jusqu'en cellule A2 pour y saisir : "B". Je termine ma
> commande par Entrée.
> Je me déplace jusqu'en cellule A3 pour y saisir : "C" et je sélectionne la
> cellule A4.
>
> J'obtiens les événements suivants :
> Worksheet_Change : Target $A$1
> worksheet_SelectionChange : Target $A$1
> Worksheet_Change : Target $A$2
> worksheet_SelectionChange : Target $A$2
> Worksheet_Change : Target $A$3
> worksheet_SelectionChange : Target $A$4
>
> Quelqu'un peut-il m'expliquer la raison des Worksheet_SelectionChange
> intempestifs ?
> Remarque valable pour Excel 2003 et 2007.
> Nota : le déplacement de la sélection après saisie n'est pas autorisé dans
> les options.
>
> Merci de vos réponses !

.



Avatar
Daniel.C
Bonjour.
D'autant plus curieux que, si tu mets un point d'arrêt sur la ligne :
MsgBox "Change " & Target.Address
et que tu poursuis l'exécution en mode pas à pas, le message :
MsgBox "Sélection change " & Target.Address
s'affiche sans que l'exécution passe dans la macro :
Private Sub Worksheet_SelectionChange
Daniel

Bonjour,

J'étais en déplacement, ce qui explique mon silence.

Tout le problème est visible à partir d'un classeur vierge, mais contenant
ces 6 lignes de code :
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "Change " & Target.Address
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "Sélection change " & Target.Address
End Sub

Il suffit de changer ce qui nous fait plaisir dans la feuille surveillée, et
les messages nous indiquent ce qu'il se passe.

Mon HENORME problème vient du fait que je vérifie qu'une cellule change de
valeur pour modifier la valeur, le format de plusieurs cellules dans
plusieurs feuilles et que des objets y sont placés et/ou déplacés, modifiés
en conséquence, mais tant que la sélection ne change pas, il n'y a pas de
modification supplémentaire pour les mises en pages et autres réjouissances.
Et là tout bouge tout le temps, Excel passe son temps à modifier des
éléments sans que cela ne soit ni demandé, ni SOUHAITABLE et il y a ainsi
une forte perte de temps, sans compter que les feuilles ressemblent à de
vrais sapins de Noël alors que l'on ne devrait rien voir !

Le déplacement de la sélection après saisie n'étant pas activé (et pas
souhaitable du tout) y a-t-il un moyen pour éviter les modifications
apportées (vu de l'utilisateur) par le non changement de sélection ?


"LSteph" a écrit :

...sinon outre le code employé, je répondais à peu près ceci il y a
quelque temps sur un sujet similaire

Ce n'est pas un bug mais
une curiosité tout de même

lorsque tu modifies ou valides une cellule, ce n'est pas sa
modification qui invoque le SelectionChange mais le retour chariot,
car de fait on change d'adresse!
Essaye , au lieu de valider avec entrée valide avec le V vert dans la
barre de formule. Si ta selection n'a pas bougé , pas de
SelectionChange!


C'est la où cela va devenir curiosité car si dans le menu tu vas
décocher Déplacer sélection après validation (Outils Option
Modification )
la façon dont tu valides continue à motiver l'évennement, à savoir
le V vert (pas de réaction),
la tabulation, réaction ..normal ça déplace qq'il en soit)
la touche Entrée sur une seule cellule, réaction, pourtant on a pas
bougé,......... là cela devient effectivement curieux!
Et pourtant si on fait Ctrl+Entrée (pas de réaction)
Et si on fait entrée pour valider une cellule sur selection de
plusieurs , pas de réaction§?


--
lSteph



On 17 nov, 07:06, Ptit Louis
wrote:
Bonjour,
Soit un classeur tout neuf que j'ouvre et dans lequel je saisis dans la
cellule A1, sélectionnée par défaut : "A". Je termine ma commande par
Entrée. Je me déplace jusqu'en cellule A2 pour y saisir : "B". Je termine
ma commande par Entrée.
Je me déplace jusqu'en cellule A3 pour y saisir : "C" et je sélectionne la
cellule A4.

J'obtiens les événements suivants :
Worksheet_Change : Target $A$1
worksheet_SelectionChange : Target $A$1
Worksheet_Change : Target $A$2
worksheet_SelectionChange : Target $A$2
Worksheet_Change : Target $A$3
worksheet_SelectionChange : Target $A$4

Quelqu'un peut-il m'expliquer la raison des Worksheet_SelectionChange
intempestifs ?
Remarque valable pour Excel 2003 et 2007.
Nota : le déplacement de la sélection après saisie n'est pas autorisé dans
les options.

Merci de vos réponses !



.





Avatar
Daniel.C
Bonjour.
Tu peux contourner le problème comme suit (le code est valable pour la
feuille "Feuil1" :
1. dans un module :

Public ResAdr1 As String

2. dans Thisworkbook :

Private Sub Workbook_Open()
Sheets("Feuil1").Select
ResAdr1 = ActiveCell.Address
End Sub

dans Feuil1 :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = ResAdr1 Then Exit Sub
ResAdr1 = Target.Address
'ton code
End Sub

Daniel

Bonjour,

J'étais en déplacement, ce qui explique mon silence.

Tout le problème est visible à partir d'un classeur vierge, mais contenant
ces 6 lignes de code :
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "Change " & Target.Address
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "Sélection change " & Target.Address
End Sub

Il suffit de changer ce qui nous fait plaisir dans la feuille surveillée, et
les messages nous indiquent ce qu'il se passe.

Mon HENORME problème vient du fait que je vérifie qu'une cellule change de
valeur pour modifier la valeur, le format de plusieurs cellules dans
plusieurs feuilles et que des objets y sont placés et/ou déplacés, modifiés
en conséquence, mais tant que la sélection ne change pas, il n'y a pas de
modification supplémentaire pour les mises en pages et autres réjouissances.
Et là tout bouge tout le temps, Excel passe son temps à modifier des
éléments sans que cela ne soit ni demandé, ni SOUHAITABLE et il y a ainsi
une forte perte de temps, sans compter que les feuilles ressemblent à de
vrais sapins de Noël alors que l'on ne devrait rien voir !

Le déplacement de la sélection après saisie n'étant pas activé (et pas
souhaitable du tout) y a-t-il un moyen pour éviter les modifications
apportées (vu de l'utilisateur) par le non changement de sélection ?


"LSteph" a écrit :

...sinon outre le code employé, je répondais à peu près ceci il y a
quelque temps sur un sujet similaire

Ce n'est pas un bug mais
une curiosité tout de même

lorsque tu modifies ou valides une cellule, ce n'est pas sa
modification qui invoque le SelectionChange mais le retour chariot,
car de fait on change d'adresse!
Essaye , au lieu de valider avec entrée valide avec le V vert dans la
barre de formule. Si ta selection n'a pas bougé , pas de
SelectionChange!


C'est la où cela va devenir curiosité car si dans le menu tu vas
décocher Déplacer sélection après validation (Outils Option
Modification )
la façon dont tu valides continue à motiver l'évennement, à savoir
le V vert (pas de réaction),
la tabulation, réaction ..normal ça déplace qq'il en soit)
la touche Entrée sur une seule cellule, réaction, pourtant on a pas
bougé,......... là cela devient effectivement curieux!
Et pourtant si on fait Ctrl+Entrée (pas de réaction)
Et si on fait entrée pour valider une cellule sur selection de
plusieurs , pas de réaction§?


--
lSteph



On 17 nov, 07:06, Ptit Louis
wrote:
Bonjour,
Soit un classeur tout neuf que j'ouvre et dans lequel je saisis dans la
cellule A1, sélectionnée par défaut : "A". Je termine ma commande par
Entrée. Je me déplace jusqu'en cellule A2 pour y saisir : "B". Je termine
ma commande par Entrée.
Je me déplace jusqu'en cellule A3 pour y saisir : "C" et je sélectionne la
cellule A4.

J'obtiens les événements suivants :
Worksheet_Change : Target $A$1
worksheet_SelectionChange : Target $A$1
Worksheet_Change : Target $A$2
worksheet_SelectionChange : Target $A$2
Worksheet_Change : Target $A$3
worksheet_SelectionChange : Target $A$4

Quelqu'un peut-il m'expliquer la raison des Worksheet_SelectionChange
intempestifs ?
Remarque valable pour Excel 2003 et 2007.
Nota : le déplacement de la sélection après saisie n'est pas autorisé dans
les options.

Merci de vos réponses !



.





Avatar
LSteph
Bonjour,

Ok , donc relis mon message précédent et fait en les différents test s
avec tes deux procs!

Ensuite dans chacune d'elle rajoute,

Application.enableeventsúlse 'au début
'puis le code et
Application.enableevents=true 'alafin


Tu verras ce qui se passe , curiosité comprise.

A+

--
lSteph




On 21 nov, 00:04, Ptit Louis
wrote:
Bonjour,

J'étais en déplacement, ce qui explique mon silence.

Tout le problème est visible à partir d'un classeur vierge, mais cont enant
ces 6 lignes de code :
Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox "Change " & Target.Address
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox "Sélection change " & Target.Address
End Sub

Il suffit de changer ce qui nous fait plaisir dans la feuille surveillé e, et
les messages nous indiquent ce qu'il se passe.

Mon HENORME problème vient du fait que je vérifie qu'une cellule chan ge de
valeur pour modifier la valeur, le format de plusieurs cellules dans
plusieurs feuilles et que des objets y sont placés et/ou déplacés, modifiés
en conséquence, mais tant que la sélection ne change pas, il n'y a pa s de
modification supplémentaire pour les mises en pages et autres réjouis sances.
Et là tout bouge tout le temps, Excel passe son temps à modifier des
éléments sans que cela ne soit ni demandé, ni SOUHAITABLE et il y a  ainsi
une forte perte de temps, sans compter que les feuilles ressemblent à d e
vrais sapins de Noël alors que l'on ne devrait rien voir !

Le déplacement de la sélection après saisie n'étant pas activé (et pas
souhaitable du tout) y a-t-il un moyen pour éviter les modifications
apportées (vu de l'utilisateur) par le non changement de sélection ?

"LSteph" a écrit :



> ...sinon outre le code employé, je répondais à peu près ceci il y a
> quelque temps sur un sujet similaire

> Ce n'est pas un bug mais
> une curiosité tout de même

> lorsque tu modifies ou  valides une cellule, ce n'est pas sa
> modification qui invoque le SelectionChange mais le retour chariot,
> car de fait on change d'adresse!
> Essaye , au lieu de valider avec entrée valide avec le V vert dans la
> barre de formule. Si ta selection n'a pas bougé , pas de
> SelectionChange!

> C'est la où cela va devenir  curiosité car si dans  le menu tu vas
> décocher Déplacer sélection après validation (Outils Option
> Modification )
> la façon dont tu valides continue à motiver l'évennement, à sav oir
> le V vert (pas de réaction),
> la tabulation, réaction ..normal ça déplace qq'il en soit)
> la touche Entrée sur une seule cellule, réaction, pourtant on a pas
> bougé,......... là cela devient effectivement curieux!
> Et pourtant si on fait Ctrl+Entrée (pas de réaction)
> Et si on fait entrée pour valider une cellule sur selection de
> plusieurs , pas de réaction§?

> --
> lSteph

> On 17 nov, 07:06, Ptit Louis
> wrote:
> > Bonjour,
> > Soit un classeur tout neuf que j'ouvre et dans lequel je saisis dans la
> > cellule A1, sélectionnée par défaut : "A". Je termine ma comman de par Entrée.
> > Je me déplace jusqu'en cellule A2 pour y saisir : "B". Je termine m a
> > commande par Entrée.
> > Je me déplace jusqu'en cellule A3 pour y saisir : "C" et je sélec tionne la
> > cellule A4.

> > J'obtiens les événements suivants :
> > Worksheet_Change : Target $A$1
> > worksheet_SelectionChange : Target $A$1
> > Worksheet_Change : Target $A$2
> > worksheet_SelectionChange : Target $A$2
> > Worksheet_Change : Target $A$3
> > worksheet_SelectionChange : Target $A$4

> > Quelqu'un peut-il m'expliquer la raison des Worksheet_SelectionChange
> > intempestifs ?
> > Remarque valable pour Excel 2003 et 2007.
> > Nota : le déplacement de la sélection après saisie n'est pas au torisé dans
> > les options.

> > Merci de vos réponses !

> .- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
Ptit Louis
Bonjour à tous,
J'ai lu les articles et fait les essais. Il est vrai que lorsque l'on valide
une saisie en cliquant sur le bouton de validation de la barre de saisie,
l'événement ne se produit pas...
Mais qui peut demander à un utilisateur qui a perdu l'habitude de se servir
de la souris (perte de temps et augmentation des erreurs) de venir cliquer
sur ce tout petit bouton ?
J'ai ajouté les lignes suggérées (elles sont toujours mises en place dans
mes modules car les opérations de modification graphiques et valeurs de
cellules sont très complexes) et je ne vois aucune différence entre les deux
versions.

En fait j'ai contourné le problème en mettant en place une verrue, comme je
viens de le voir dans une réponse, qui vérifie que si l'événement
"SelectionChange" apparaît et que la cellule active est identique à celle qui
a généré cet événement, il n'est pas traitén (fausse vraie erreur). Un peu
"limite"... cela fonctionne mais me gêne un peu.

Un autre phénomène : si l'on protège la feuille en ne laissant accessibles
que les plages qui doivent l'être (les autres contiennent des références, des
calculs...), chaque appui sur "Entrée" déplace physiquement la cellule
sélectionnée après cette action... Pas mal ? ! ? Sauf que la sélection se
trouve un peu n'importe où, en fonction des plages accessibles (balayage en
Lignes puis en Colonnes pour trouver la prochaine cellule autorisée)... et si
l'on veut tester plusieurs valeurs dans une même cellule cela devient
vraiment du sport !
En tout cas, merci de votre collaboration.
Excellente continuation.

"LSteph" a écrit :

Bonjour,

Ok , donc relis mon message précédent et fait en les différents tests
avec tes deux procs!

Ensuite dans chacune d'elle rajoute,

Application.enableeventsúlse 'au début
'puis le code et
Application.enableevents=true 'alafin


Tu verras ce qui se passe , curiosité comprise.

A+

--
lSteph




On 21 nov, 00:04, Ptit Louis
wrote:
> Bonjour,
>
> J'étais en déplacement, ce qui explique mon silence.
>
> Tout le problème est visible à partir d'un classeur vierge, mais contenant
> ces 6 lignes de code :
> Private Sub Worksheet_Change(ByVal Target As Range)
> MsgBox "Change " & Target.Address
> End Sub
>
> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> MsgBox "Sélection change " & Target.Address
> End Sub
>
> Il suffit de changer ce qui nous fait plaisir dans la feuille surveillée, et
> les messages nous indiquent ce qu'il se passe.
>
> Mon HENORME problème vient du fait que je vérifie qu'une cellule change de
> valeur pour modifier la valeur, le format de plusieurs cellules dans
> plusieurs feuilles et que des objets y sont placés et/ou déplacés, modifiés
> en conséquence, mais tant que la sélection ne change pas, il n'y a pas de
> modification supplémentaire pour les mises en pages et autres réjouissances.
> Et là tout bouge tout le temps, Excel passe son temps à modifier des
> éléments sans que cela ne soit ni demandé, ni SOUHAITABLE et il y a ainsi
> une forte perte de temps, sans compter que les feuilles ressemblent à de
> vrais sapins de Noël alors que l'on ne devrait rien voir !
>
> Le déplacement de la sélection après saisie n'étant pas activé (et pas
> souhaitable du tout) y a-t-il un moyen pour éviter les modifications
> apportées (vu de l'utilisateur) par le non changement de sélection ?
>
> "LSteph" a écrit :
>
>
>
> > ...sinon outre le code employé, je répondais à peu près ceci il y a
> > quelque temps sur un sujet similaire
>
> > Ce n'est pas un bug mais
> > une curiosité tout de même
>
> > lorsque tu modifies ou valides une cellule, ce n'est pas sa
> > modification qui invoque le SelectionChange mais le retour chariot,
> > car de fait on change d'adresse!
> > Essaye , au lieu de valider avec entrée valide avec le V vert dans la
> > barre de formule. Si ta selection n'a pas bougé , pas de
> > SelectionChange!
>
> > C'est la où cela va devenir curiosité car si dans le menu tu vas
> > décocher Déplacer sélection après validation (Outils Option
> > Modification )
> > la façon dont tu valides continue à motiver l'évennement, à savoir
> > le V vert (pas de réaction),
> > la tabulation, réaction ..normal ça déplace qq'il en soit)
> > la touche Entrée sur une seule cellule, réaction, pourtant on a pas
> > bougé,......... là cela devient effectivement curieux!
> > Et pourtant si on fait Ctrl+Entrée (pas de réaction)
> > Et si on fait entrée pour valider une cellule sur selection de
> > plusieurs , pas de réaction§?
>
> > --
> > lSteph
>
> > On 17 nov, 07:06, Ptit Louis
> > wrote:
> > > Bonjour,
> > > Soit un classeur tout neuf que j'ouvre et dans lequel je saisis dans la
> > > cellule A1, sélectionnée par défaut : "A". Je termine ma commande par Entrée.
> > > Je me déplace jusqu'en cellule A2 pour y saisir : "B". Je termine ma
> > > commande par Entrée.
> > > Je me déplace jusqu'en cellule A3 pour y saisir : "C" et je sélectionne la
> > > cellule A4.
>
> > > J'obtiens les événements suivants :
> > > Worksheet_Change : Target $A$1
> > > worksheet_SelectionChange : Target $A$1
> > > Worksheet_Change : Target $A$2
> > > worksheet_SelectionChange : Target $A$2
> > > Worksheet_Change : Target $A$3
> > > worksheet_SelectionChange : Target $A$4
>
> > > Quelqu'un peut-il m'expliquer la raison des Worksheet_SelectionChange
> > > intempestifs ?
> > > Remarque valable pour Excel 2003 et 2007.
> > > Nota : le déplacement de la sélection après saisie n'est pas autorisé dans
> > > les options.
>
> > > Merci de vos réponses !
>
> > .- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -

.



Avatar
michdenis
Bonjour Ptit Louis,

(Je n'ai pas tout lu le fil...)

Dans Excel, il y a une option :
barre des menus / outils / options / Onglet Modification
si tu décoches la case : "Déplacer la sélection après validation"

Tu pourrais utiliser la touche "Enter" et la sélection de la cellule
ne se déplacera pas lorsque tu la valideras.
Avatar
Ptit Louis
Bonjour,
Malheureusement cette option est bien décochée (comme indiqué dans le
premier message) car je ne supporte pas cette option qui est, pour moi, très
dangereuse quand on rempli pas une liste de cellules. Dur Dur ! Je n'ose
imaginer ce qui pouurai se passer dans le cas contraire.

Le plus difficile est que je suis obligé de protéger le classeur (mais
laisser accès à TOUTES les cellules y compris les verrouillées !) pour que
l'utilisateur ne soit pas tenté de "toucher" un élément ou une donnée ou un
calcul ne serait-ce que pour "jouer" et je pers terriblement en efficacité,
en performance, en qualité.
Je suis en permanence en train de regarder un sapin de Noël ! ça clignote
dans tous les coins de la feuille alors que cela ne le devrait pas.

Si Bill pouvait nous dire que la sélection ne change que lorsque cela est
vrai (et observable !), ce serait fort sympa... si quelqu'un peut lui dire...

"michdenis" a écrit :

Bonjour Ptit Louis,

(Je n'ai pas tout lu le fil...)

Dans Excel, il y a une option :
barre des menus / outils / options / Onglet Modification
si tu décoches la case : "Déplacer la sélection après validation"

Tu pourrais utiliser la touche "Enter" et la sélection de la cellule
ne se déplacera pas lorsque tu la valideras.






Avatar
michdenis
Si tu nous disais (décrivait) quel serait pour ton application
le comportement idéal d'excel ?

Tu peux jouer avec l'option décrite :
A )Dans Excel, il y a une option :
barre des menus / outils / options / Onglet Modification
si tu décoches la case : "Déplacer la sélection après validation"

B ) Tu peux empêcher qu'Excel sélectionne une cellule protégée
en utilisant une ligne de code comme :
worksheets("Feuil1").EnableSelection=xlUnlockedCells

C ) Tu peux suspendre temporairement le déclenchement des
macros complémentaires en utilisant :
application.Enableevents = False ou True

Moi, je n'arrive pas à cerner ton besoin spécifique !