OVH Cloud OVH Cloud

Boutons macros qui disparaissent

3 réponses
Avatar
Laurent (de la cabane au Canada)
Bonjour,

Un de mes usagers utilise depuis plusieurs mois un classeur dans lequel
il a créé de nombreux boutons macros de feuille, histoire d'accélérer le
filtrage d'une base de données selon différents critères. J'ai vérifié,
les macros sont très simples, elles ne font qu'activer ou désactiver
certains critères du filtre automatique. Hors depuis récemment,
lorsqu'il appuie sur certains boutons macros, deux ou trois autres
boutons macros présents dans sa feuille disparaissent! Ça ne se produit
pas à tous les coups, mais disons, une fois sur quatre. S'il continue
d'appuyer sur le même bouton macro, deux ou trois autres boutons vont
encore disparaître, et ainsi de suite.

J'ai essayé sur plusieurs PCs, sous Excel XP SP1, SP2 et même SP3: même
scénario.

La disparition des boutons est définitive, il ne s'agit pas d'un
masquage ou quelque chose du genre. Par exemple, l'instruction
ActiveSheet.Shapes("Button 52").Select retourne une erreur après que le
bouton 52 ait effectivement disparu de la feuille.

Voici, pour mémoire, le code VBA d'un des boutons macros qui fait
aléatoirement disparaître deux ou trois boutons:

Sub Macro36()
Range("A2").Select
Selection.AutoFilter 'désactive le filtre auto
Selection.AutoFilter 'réactive le filtre auto
Selection.AutoFilter Field:=1 'annule le critère de la colonne 1
Selection.AutoFilter Field:=5, Criteria1:="<>ACHR=" 'active critère
Columns("F:F").Select
End Sub

Le problème n'est pas à chercher du côté du VBA, car si j'effectue
manuellement les étapes de la macro (il faut être patient, ça peut
prendre 4 ou 5 coups), j'obtiens les mêmes symptômes. Pour être exact,
la disparition de boutons a lieu lors de la réactivation du filtre auto.

La seule particularité que j'observe, c'est que le fichier est
relativement gros (15 megs), mais bon, j'ai déjà vu pire.

Je connais Excel depuis la version 3, et je l'ai même enseigné, j'ai
donc connu toutes sortes de bugs étranges, mais celui-là remporte la
palme de l'ésotérisme. Je dois dire aussi, que j'ai déjà observé des
comportements étranges en ce qui concerne le filtre auto (genre, on
désactive le filtre auto, mais les flèches déroulantes demeurent
visibles, bien qu'inutilisables). J'ai même conservé certains classeurs
aux comportements anormaux, comme d'autres collectionnent les insectes
exotiques (avis aux intéressés). À mon avis, il y a des failles de
programmation dans le filtre auto, et selon certaines circonstances
(peut-être la grosseur excessive du fichier), une corruption a lieu.

Laurent (de la cabane au Canada)

3 réponses

Avatar
MsNews
Bonsoir Laurent,

As-tu essayé quelque chose dans le genre :

'-------------------------------
Sub FautVoir()

Dim sh As Shape
For Each sh In ActiveSheet.Shapes
sh.Width = 25
sh.Height = 25
Next

End Sub
'-------------------------------


Salutations!


"Laurent (de la cabane au Canada)" a écrit dans le message de news:
uIj%
Bonjour,

Un de mes usagers utilise depuis plusieurs mois un classeur dans lequel
il a créé de nombreux boutons macros de feuille, histoire d'accélérer le
filtrage d'une base de données selon différents critères. J'ai vérifié,
les macros sont très simples, elles ne font qu'activer ou désactiver
certains critères du filtre automatique. Hors depuis récemment,
lorsqu'il appuie sur certains boutons macros, deux ou trois autres
boutons macros présents dans sa feuille disparaissent! Ça ne se produit
pas à tous les coups, mais disons, une fois sur quatre. S'il continue
d'appuyer sur le même bouton macro, deux ou trois autres boutons vont
encore disparaître, et ainsi de suite.

J'ai essayé sur plusieurs PCs, sous Excel XP SP1, SP2 et même SP3: même
scénario.

La disparition des boutons est définitive, il ne s'agit pas d'un
masquage ou quelque chose du genre. Par exemple, l'instruction
ActiveSheet.Shapes("Button 52").Select retourne une erreur après que le
bouton 52 ait effectivement disparu de la feuille.

Voici, pour mémoire, le code VBA d'un des boutons macros qui fait
aléatoirement disparaître deux ou trois boutons:

Sub Macro36()
Range("A2").Select
Selection.AutoFilter 'désactive le filtre auto
Selection.AutoFilter 'réactive le filtre auto
Selection.AutoFilter Field:=1 'annule le critère de la colonne 1
Selection.AutoFilter Field:=5, Criteria1:="<>ACHR=" 'active critère
Columns("F:F").Select
End Sub

Le problème n'est pas à chercher du côté du VBA, car si j'effectue
manuellement les étapes de la macro (il faut être patient, ça peut
prendre 4 ou 5 coups), j'obtiens les mêmes symptômes. Pour être exact,
la disparition de boutons a lieu lors de la réactivation du filtre auto.

La seule particularité que j'observe, c'est que le fichier est
relativement gros (15 megs), mais bon, j'ai déjà vu pire.

Je connais Excel depuis la version 3, et je l'ai même enseigné, j'ai
donc connu toutes sortes de bugs étranges, mais celui-là remporte la
palme de l'ésotérisme. Je dois dire aussi, que j'ai déjà observé des
comportements étranges en ce qui concerne le filtre auto (genre, on
désactive le filtre auto, mais les flèches déroulantes demeurent
visibles, bien qu'inutilisables). J'ai même conservé certains classeurs
aux comportements anormaux, comme d'autres collectionnent les insectes
exotiques (avis aux intéressés). À mon avis, il y a des failles de
programmation dans le filtre auto, et selon certaines circonstances
(peut-être la grosseur excessive du fichier), une corruption a lieu.

Laurent (de la cabane au Canada)
Avatar
Laurent (de la cabane au Canada)
MsNews wrote:

As-tu essayé quelque chose dans le genre :

'-------------------------------
Sub FautVoir()

Dim sh As Shape
For Each sh In ActiveSheet.Shapes
sh.Width = 25
sh.Height = 25
Next

End Sub


Merci MsNews,

Non, mais je ne crois pas que la macro y soit pour quelque chose. En
fait, je suis capable de faire disparaître des boutons en effectuant le
filtrage automatique manuellement. Par contre, ta macro m'a donné une
idée: je l'ai adaptée juste pour savoir le nombre de Shapes (Msgbox
activesheet.shapes.count). Et ce qui est étrange, c'est que le décompte
des objets demeure le même (78) même après que des boutons aient disparu
(et ta macro FautVoir ne permet pas de les rendre visibles à nouveau).
On dirait qu'Excel les a perdus quelque part dans son cache.
Définitivement, il s'agit d'un bug. Je pense qu'il y a un problème de
gestion de mémoire de calcul ou d'allocation dynamique de mémoire
défaillante (fuites). Pas évident à circonscrire, mais susceptible de se
produire dans les gros fichiers ou s'il y a beaucoup d'objets graphiques
à gérer. Serais-je le seul à avoir vécu ce phénomène paranormal?

Laurent

Avatar
yo-06
J'ai exactement le meme bug, avez-vous résolu ce problème.
Si j'ai bien compris se sont les filtre auto qui supprime les boutons
La seule solution et de ne pas placer de bouton dans la zone de traitement des filtres auto?
Merci