Xxxaaavvv a écrit :
bof, faire intervenir la gestion d'erreur c'est sale.
aussi bien celle de VBA que celle des formules
Public Function IsWorksheet(strName As String) As Boolean
Dim objWorksheet As Worksheet
IsWorksheet = False
For Each objWorksheet In ActiveWorkbook.Worksheets
If objWorksheet.Name = strName Then
IsWorksheet = True
End If
Next
End Function
|
|
Ajouter un "Exit for" optimiserait un peu la procédure.
Toutefois, l'utilisation d'une boucle n'est pas aussi efficace dans le cas présent. D'une part parce qu'une grande quantité de feuilles à "vérifier" affecte la rapidité de la procédure. De plus l'usage répété à un échelon supérieur fait ressortir ce problème.
Il y a un inconvénient à la gestion des erreurs VBA : c'est qu'on "suppose" que l'erreur générée est déclenchée par l'évênement qui nous intéresse. Alors qu'en réalité, il existe d'autres sources de génération d'erreur (débordement mémoire, etc..) qui peuvent conduire (rarement c'est vrai mais quand même) à un résultat qui est faux.
Alors que dans le cas de la verification d'une formule, celle-ci est précisément orientée sur le problème qu'elle est susceptible de générer. Iserror n'est pas une gestion d'erreur à proprement parlé mais une vérification gérée nativement par Excel et donc optimisée dans ce but. Et, je ne vois pas ce qu'il y a de sale
---
Jacknight
www.bluebirdcommunication.ch
Message édité par Jacknight le 03-11-2010 à 23:27:47