Test d'existence de feuille
Bonjour
Quelqu'un de ce forum m'a gentiment écrit cette macro pour tester si une feuille existe.
>>>>
Function Feuille_Existence(Label As String) As Boolean
Dim Feuille As Worksheet
Feuille_Existence = False
For Each Feuille In ActiveWorkbook.Worksheets
If Feuille.Name = Label Then
Feuille_Existence = True
Exit Function
End If
Next
MsgBox "La feuille " & Label & " n'existe pas."
End Function
>>>
Elle marche très bien si j'appelle par exemple feuille_existence("données") ou feuille_existence (Cellule.value) e n sachant que dans la cellule, il y a le nom de la feuille.
Mais cela ne marche pas si je veut tester une feuille par son NOM (interne) du style Feuil2 etc ..
Comment faire ?
Merci
salut
ce que tu appelles nom interne c'est le codename ?
si oui tu peux tester ce nom à l'aide de la propriété codename, comme ceci :
If Feuille.Name = Label or feuille.codename=..... Then
a plus
Bonsoir le fil,
Celui qui t'a pondu ce code de vérification d'existence de feuille, n'a pas dû travailler avec de gros classeurs
Boucler sur toutes les feuilles n'est vraiment pas judicieux
Voici un code ultra rapide
Function FeuilleExiste(sNom As String) As Boolean
Dim ValTest As Variant
' En cas d'erreur on continue
On Error Resume Next
' Récupérer une pseudo valeur dans la feuille
ValTest = Sheets(sNom).Range("A1").Value
' Vérifier si un code erreur est retourné
If Err.Number <> 0 Then
FeuilleExiste = False
MsgBox "La feuille " & sNom & " n'existe pas."
Else
FeuilleExiste = True
End If
' Suivi des erreurs normal
On Error GoTo 0
End FunctionPourquoi tester l'existence d'une feuille par son nom dans le projet VBA !?
C'est source d'erreur et d'ennuis par la suite
A+
Merci
Celui qui a fait cette function a eu la gentillesse de la faire.. comme toi tu as la gentillesse de me proposer les tiennes..
En fait, mon problème est que je ne connais pas le libellé exact et final du nom des feuilles, et je suis en train de travailler sur deux pistes, car je ne veux pas avoir à reprendre tout le code :
*Soit bosser avec les CodeName
*Soit travailler avec des noms de feuilles contenues dans des cellules
Donc comme je ne sais pas encore ce qui va marcher, j’essaye de couvrir toutes les possibilités.
Comment ca se passerai si je voulais testersur les codename ?
Merci
Re,
Tester le nom des feuilles sur le codename est une folie
Un exemple simple et concret, tu ouvres un nouveau classeur avec 3 feuilles ou plus, par exemple,
1ère feuille : Codename = Feuil1 - Name = Feuil1
2ème feuille : Codename = Feuil2 - Name = Feuil2
3ème feuille : Codename = Feuil3 - Name = Feuil3
Etc ....
Tu supprimes la feuille 2 et tu enregistres ton classeur
Tu ré-ouvres le classeur et tu crées une nouvelle Feuille
Et bien tu auras
1ère feuille : Codename = Feuil1 - Name = Feuil1
2ème feuille : Codename = Feuil2 - Name = Feuil3
3ème feuille : Codename = Feuil3 - Name = Feuil2
Oups....
Je sais .. mais dans ce cas là, j'aurais donné des nom spécifiques à ces feuilles du style
PL3
CH3
PR3
PL4....