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

Bug Excel 97/98 ?

10 réponses
Avatar
josephb
Bonjour à tous

Je vois que dans mon Excel 98/Mac, la suppression d'un range, ligne ou
colonne ne déclenche pas l'événement <Workbook_SheetChange>.
Une paille !
Est-ce un bug répertorié de mon antiquité ou aussi le comportement des
versions ultérieures ?
Pas encore pu vérifier comment ça se passe sur Excel 2000 Win, et c'est
ça qui m'intéresse au premier chef.

Merci de votre aide !


--
J. B.

10 réponses

Avatar
michdenis
Bonjour Joseph,

Copie et exécute cette macro une fois dans ton classeur
dans le module de ton choix

Sub test()
Application.EnableEvents = True
End Sub

Normalement, cette procédure devrait être déclenchée lors
de la suppression d'une ligne.



"Joseph B." a écrit dans le message de groupe de discussion :
1j5zupv.qip8ip1doydnuN%
Bonjour à tous

Je vois que dans mon Excel 98/Mac, la suppression d'un range, ligne ou
colonne ne déclenche pas l'événement <Workbook_SheetChange>.
Une paille !
Est-ce un bug répertorié de mon antiquité ou aussi le comportement des
versions ultérieures ?
Pas encore pu vérifier comment ça se passe sur Excel 2000 Win, et c'est
ça qui m'intéresse au premier chef.

Merci de votre aide !


--
J. B.
Avatar
josephb
Bonsoir MichDenis
michdenis wrote:

Copie et exécute cette macro une fois dans ton classeur
dans le module de ton choix

Sub test()
Application.EnableEvents = True
End Sub



Je comprends ton étonnement.
Avant de poster j'avais déjà vérifié et revérifié
( y compris forcé la propriété <Application.EnableEvents = True> via la
fenêtre d'éxécution) etc, sans que ça change rien à ces événements
zappés.

Donc pour être sûr, j'ai créé un nouveau classeur vide de toute proc

En code classeur ET en code de feuille 1 j'ai mis la proc de changement
en feuille avec point d'arrêt et un msgBox pour suivre son interception
des événements
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Excel.Range)

et voilà le bilan de mes tests (oui = événement intercepté au niveau
feuille ET classeur, NON = aucun événement intercepté)

Copier/coller cellule à cellule (y compris collage spécial_Valeur) = oui
Couper/coller cellule à cellule = oui + oui (normal, 2 cellules
modifiées)
Vider range(s) ou ligne(s) ou colonne(s) de leur valeur = oui
Modifier manuellement une valeur de cellule = oui
Valeur de cellule par formule, à la création formule = oui
Modif de la formule (donc change valeur cellule) = oui
Modif d'une cellule impliquée dans la formule :
pour la cellule source modifiée = oui
pour la cellule résultat (donc modifiée) = NON

Coller dans une cellule valeur copiée hors du classeur = NON
Insérer range(s) ou ligne(s) ou colonne(s) = NON NON NON
Supprimer range(s) ou ligne(s) ou colonne(s) = NON NON NON
Remplir une cellule par liste de validation = NON
et pour le fun
Données--> Convertir pour remplir x cellules avec x mots = NON x fois

Y en a peut-être d'autres à trouver, mais bon, c'est peut-être un peu
tard pour se lancer dans le beta test d'Excel 97/98 Mac ;-))

Demain je regarde ce qu'il en est avec Excel 2000 Win, par ce que là
c'est pour le boulot et j'aimerais bien que certaines des procs que j'ai
laborieusement préparées ce WE (entre autres grâce à ton aide) ne
soient pas partiellement inopérantes si ces événements ne sont pas
interceptés !

Cordialement,
--
J. B.
Avatar
Caetera
> Je vois que dans mon Excel 98/Mac, la suppression d'un range, ligne ou
colonne ne déclenche pas l'événement <Workbook_SheetChange>.



C'est connu !
C'est le même comportement que XL97 sous Win
Avatar
LSteph
Bonjour,
Ce n'est pas tout à fait un bug même si cela peut troubler!
Le comportement est le même avec 2003,
Lorsque tu supprime un Range comme une ligne ou colonne
il en résulte que la sélection est toujours la même
donc la selection porte toujours la même référence!
Celle-ci n'a donc "théoriquement, selon ce principe" pas changé.

Cordialement.

--
lSteph

On 14 sep, 07:45, "Caetera" <EtiennePloufCahé@wanadoo.fr> wrote:
> Je vois que dans mon Excel 98/Mac, la suppression d'un range, ligne ou
> colonne ne déclenche pas l'événement <Workbook_SheetChange>.

C'est connu !
C'est le même comportement que XL97 sous Win


Avatar
LSteph
Bonjour,

Non c'est pareil en 2003.
Ce n'est pas un bug regarde si tu supprime A:A
a l'issue tu es toujours en A:A
la Selection en terme de référence n'a pas changé!

Cordialement.

--
lSteph

On 13 sep, 18:26, (Joseph B.) wrote:
Bonjour à tous

Je vois que dans mon Excel 98/Mac, la suppression d'un range, ligne ou
colonne ne déclenche pas l'événement <Workbook_SheetChange>.
Une paille !
Est-ce un bug répertorié de mon antiquité ou aussi le comportement des
versions ultérieures ?
Pas encore pu vérifier comment ça se passe sur Excel 2000 Win, et c'e st
ça qui m'intéresse au premier chef.

Merci de votre aide !

--
J. B.


Avatar
LSteph
Re Bonjour,

Ce n'est pas un bug mais
une curiosité tout de même outre, le fait que cela ne change pas de
Selection (voir ma réponse dans le fil de même qd on insère)

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 13 sep, 23:31, (Joseph B.) wrote:
Bonsoir MichDenis

michdenis wrote:
> Copie et exécute cette macro une fois dans ton classeur
> dans le module de ton choix

> Sub test()
> Application.EnableEvents = True
> End Sub

Je comprends ton étonnement.
Avant de poster j'avais déjà vérifié et revérifié
( y compris forcé la propriété <Application.EnableEvents = True> via la
fenêtre d'éxécution) etc, sans que ça change rien à ces évé nements
zappés.

Donc pour être sûr, j'ai créé un nouveau classeur vide de toute p roc

En code classeur ET en code de feuille 1 j'ai mis la proc de changement
en feuille avec point d'arrêt et un msgBox pour suivre son interception
des événements
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Excel.Range)

et voilà le bilan de mes tests (oui = événement intercepté au n iveau
feuille ET classeur, NON = aucun événement intercepté)

Copier/coller cellule à cellule (y compris collage spécial_Valeur) = oui
Couper/coller cellule à cellule = oui + oui (normal, 2 cellules
modifiées)
Vider range(s) ou ligne(s) ou colonne(s) de leur valeur = oui
Modifier manuellement une valeur de cellule = oui
Valeur de cellule par formule, à la création formule = oui
Modif de la formule (donc change valeur cellule) = oui
Modif d'une cellule impliquée dans la formule :
  pour la cellule source modifiée = oui
  pour la cellule résultat (donc modifiée) = NON

Coller dans une cellule valeur copiée hors du classeur = NON
Insérer range(s) ou ligne(s) ou colonne(s) = NON NON NON
Supprimer range(s) ou ligne(s) ou colonne(s) = NON NON NON
Remplir une cellule par liste de validation = NON
et pour le fun
Données--> Convertir pour remplir x cellules avec x mots = NON x fois

Y en a peut-être d'autres à trouver, mais bon, c'est peut-être un p eu
tard pour se lancer dans le beta test d'Excel 97/98 Mac ;-))

Demain je regarde ce qu'il en est avec Excel 2000 Win, par ce que là
c'est pour le boulot et j'aimerais bien que certaines des procs que j'ai
laborieusement préparées ce WE (entre autres grâce à ton aide)  ne
soient pas partiellement inopérantes si ces événements ne sont pas
interceptés !

Cordialement,
--
J. B.


Avatar
Caetera
"LSteph" a écrit dans le message de news:


Ce n'est pas tout à fait un bug même si cela peut troubler!
Le comportement est le même avec 2003,
Lorsque tu supprime un Range comme une ligne ou colonne
il en résulte que la sélection est toujours la même
donc la selection porte toujours la même référence!
Celle-ci n'a donc "théoriquement, selon ce principe" pas changé.




Dns la question,i ne s'agit pas de l'évènement Worksheet_SelectionChange mais
de l'évènement Worksheet_Change !

Même comportement avec XL98 (mac) et XL97(pc)
Changement de comportement à partir de XL2000 (pc)

Etc
Avatar
LSteph
Effectivement , j'avais mal lu, ou un peu trop vite!

Merci de ton intervention.

--
lSteph

On 14 sep, 17:09, "Caetera" <EtiennePloufCahé@wanadoo.fr> wrote:
"LSteph" a écrit dans le message de news:


> Ce n'est pas tout à fait un bug même si cela peut troubler!
>Le comportement est le même avec 2003,
>Lorsque tu supprime un Range comme une ligne ou colonne
>il en résulte que la sélection est toujours la même
>donc la selection porte toujours la même référence!
>Celle-ci n'a donc "théoriquement, selon ce principe" pas changé.

Dns la question,i ne s'agit pas de l'évènement  Worksheet_Selection Change mais
de l'évènement Worksheet_Change !

Même comportement avec XL98 (mac) et XL97(pc)
Changement de comportement à partir de XL2000 (pc)

Etc


Avatar
josephb
Bonsoir,

Caetera <EtiennePloufCahÈ@wanadoo.fr> wrote:

Même comportement avec XL98 (mac) et XL97(pc)
Changement de comportement à partir de XL2000 (pc)



Merci de le confirmer.
J'ai pu, aujourd'hui avec la version 2000 Win au boulot me livrer à la
même série de tests qu'hier avec la 98/Mac et cette fois les événements
de modification de feuille passent bien. Grand soulagement.

Tout ce qui modifie l'objet feuille est détecté sauf encore l'insertion
de ligne(s), colonne(s) ou cellule(s) qui ne l'est pas.
Mais dans la mesure où l'insertion de colonne conserve (en
l'incrémentant) le lien de la liste de validation, ça ne me dérange pas.
Pour les autres cas où la liste de validation serait endommagée
(suppression de ligne ou colonne, par exemple) l'interception de
l'événement WorkSheet_Change lance la proc qui régénère les listes
sources.

Merci à tous de vos éclairages et coups de main au débutant VBA que je
suis.

PS : La Cmde Menu "Convertir" ne déclenche pas d'événement, mais cette
fonctionalité ne concerne pas mon projet.





--
J. B.
Avatar
josephb
Bonsoir

LSteph wrote:

Effectivement , j'avais mal lu, ou un peu trop vite!



Peut-être, mais tes explications me sont néanmoins très utiles pour
appréhender les subtilités du SelectionChange :-)

Merci
Cordialement,

--
J. B.