Comment vérifier si une feuille Excel existe ? - VB/VBA/VBS - Programmation
Marsh Posté le 24-07-2007 à 15:11:00
Cette fonction minimaliste devrait t'aider :
Public Function FeuilleExiste(sNomFeuille As String) As Boolean |
À utiliser, par exemple, comme suit :
If FeuilleExiste("Feuil1" ) Then... |
Marsh Posté le 30-10-2010 à 18:18:58
J'ai mieux
La fonction suivante retourne la valeur "Vrai" si la feuille existe.
Public Function FeuilleExiste (ByVal strNomFeuille As String) As Boolean
'Retourne TRUE si strNomFeuille est le nom d'une feuille qui existe dans le classeur actif
' FALSE dans le cas contraire
FeuilleExiste = Not (IsError(Evaluate("='" & strNomFeuille & "'!A1" )))
End Function
Jacknight
www.bluebirdcommunication.ch
Marsh Posté le 03-11-2010 à 17:58:26
bof, faire intervenir la gestion d'erreur c'est sale.
aussi bien celle de VBA que celle des formules
|
Marsh Posté le 03-11-2010 à 21:54:26
Xxxaaavvv a écrit : bof, faire intervenir la gestion d'erreur c'est sale.
|
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
Marsh Posté le 04-11-2010 à 09:37:16
Une simple erreur de syntaxe dans la formule inclue dans le evaluate peut être ?
ça a beau être tout fait en une seule ligne, le fait de devoir interpreter une formule, la faire planter, de récupérer l'erreur pour dire que "non" elle n'y est pas, c'est pas génial, c'est moyen détourné comme pour l'autre.
sinon oui il manque l'exit for pour optimiser ma boucle, mais aussi le "activeworkbook" qu'il faudrait éliminer si je voulais être extrémiste.
Marsh Posté le 24-07-2007 à 15:03:15
Bonjour à tous,
Je voudrais savoir comment est il possible de créer une variable booléenne qui me renvoie si une feuille, nommée "mafeuille" par exemple, existe ou nom dans mon classeur excel.
J'espère avoir été clair, merci d'avance