Une gestion d'erreur de plus en plus aléatoire
Bonjour,
Depuis... Quelques mois ou quelques années ! On va dire en gros depuis 'arrivée de 365 voire même de puis celle des tableaux structurés ? Je trouve que la gestion des erreurs est devenue de plus en plus aléatoire. En dépit de tous mes efforts c'est quasiment impossible de passer des données d'un Userform à un tableau structuré sans planter la gestion d'erreur. et même des simples sont devenues des vrais casse têtes : Hier encore j'essayais de sécuriser une saisie de plage dans un TextBox avec une gestion du type On Error Goto GESTERR et à la première maladresse la gestion d'erreur à fait un malheur : Entrez un UU au lieu de U7 et c'est le plantage assuré... ou alors il faut passer par une surveillance caractère par caractère pour s'assurer qu'on a bien une plage cohérente...
Mais comment surveiller l'évènement Change si la plage est trop vaste tant qu'on reste dans les 26 premières colonnes ça peut encore le faire, mais après... Je sais bien il y a le RefEdit mais c'est pareil c'est bien pour des plages faciles...
Le pire étant à mon avis les tableaux structurés. Pour écrire la moindre ligne avec des chances de passer indemne il faut une armée de fonctions pour scruter toutes les causes possibles de plantage...
Quelqu'un a-t-il une idée de la raison pour laquelle le gestionnaire d'erreur devient de plus en plus caractériel ?
A+
Bonjour,
Visiblement tout le monde s'en fout à moins que ça n'arrive qu'à moi ?
Un exemple de Gestion d'Erreur qui ne marche pas :
On Error Resume Next
If WsB.AutoFilterMode Or WsB.FilterMode Then WsB.AutoFilter.ShowAllDataChez moi ça plante alors que WSB n'à pas le moindre filtre...
A+
bonjour Galopin01,
moi, je trouve ces tableaux structurés assez utiles !!! Mais je ne vois pas des grands problèmes. Avez-vous un exemple ?
j'utilise par exemple ceci, sans problème (mais c'est quelque chose personnel que vous ne trouverez pas avec Google, je pense) pour désactiver un filtre
on error Resume next
WSB.autofilter.range.autofilter
on error goto 0Bonjour galopin,
tu es toujours sur 2016 ?
Sur 2021 je n'ai pas constaté de pb de ce genre. Mais bon, j'ai considérablement levé le pied depuis plus d'un an...
Ton exemple fonctionne correctement chez moi
Parfois j'avais des pb quand le gestionnaire était appelé plusieurs fois dans une boucle.
Je le résolvais en mettant On Error Goto -1 (au lieu de 0, non documenté pour excel) qui fait une réinitialisation complète du gestionnaire.
Je ne pense pas que ça résoudra ton pb qui est totalement différent, mais ça ne coûte rien d'essayer.
Sinon d'accord avec toi sur les Tableaux. Autant c'est génial, autant il y a beaucoup de manques incompréhensibles, et des façons de faire un peu tarabiscotées parfois. Par exemple qu'on ne puisse pas mettre une ref structurée dans une validation par liste me sidère. Obligé de passer par un nom
Pour ton contrôle de validité d'une ref tu pourrais faire ainsi :
[A1].Formula = "=zzz2"
If IsError([A1]) Then
Debug.Print "ref nok"
Else
Debug.Print "ref ok"
End IfLes noms déclarés sont vus comme valides. Il y a sans doute un tri à faire parmi eux si tu y as des constantes ou des formules qui ne correspondent pas à des références.
eric
Bonsoir,
Oui je suis toujours sur 2016, plus pour longtemps sans doute, je traîne un peu les pieds pour changerd e bécane vu mon besoin réel, mébon.
Sur le cas précis de ce filter je ne me suis pas embarrassé de demi mesure vu que cette petite BD est utilisée de manière extrêmement restreinte, elle ne connaîtra sans doute jamais le moindre filtre. Donc j'ai purement et simplement viré le
Or WsB.FilterModequi renvoyait toujours vrai au débogage... Un comble pour une feuille qui n'a sans doute jamais connu les joies du filtrage...
Je testerai aussi le -1 à l'occasion.
Bonne soirées et joyeuses fêtes !
A+
Je relance un peu ce sujet...
En fouinant sur ce topic :
https://forum.excel-pratique.com/excel/carte-interactive-194977#p1213827
j'ai essayer de tester l'import de carte JSon et le bouton GO du classeur et je tombe sur l'erreur suivante :
C'est typique de mon problème : On se demande bien à quoi peut servir le gestionnaire d'erreur dans ces conditions !
A+