Bonjour
malgré mes recherches sur le forum et sur les aide de Excel, je n'ai pas retrouvé le fonction qui me permette de tester l'existence d'une feuille dans mon classeur.
Existe-t-il une telle fonction?
merci de votre aide!
Bonjour
malgré mes recherches sur le forum et sur les aide de Excel, je n'ai pas retrouvé le fonction qui me permette de tester l'existence d'une feuille dans mon classeur.
Existe-t-il une telle fonction?
merci de votre aide!
Pti Pié
Tu peux essayer de faire une boucle sur toutes les feuilles et regarder si une feuille avec un nom précis existe
Maintenant ça dépend ce que tu entend aussi par "existence d'une feuille" si c'est une feuille spécifique, ou si c'est autre chose
- Avant de poster, et http://www.developpez.com/sources/
- Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
- N'oubliez pas le
- N'oubliez pas le si la réponse vous a été utile !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Function WorkSheetExist(Sheetname as String) Dim wSheet As Worksheet On Error Resume Next Set wSheet = Sheets(Sheetname) If wSheet Is Nothing WorkSheetExist=0 On Error GoTo 0 Else 'Does exist WorkSheetExist=0 On Error GoTo 0 End If Set wSheet = Nothing End fUNCTION
N'oubliez pas de mettre le
ok c'est pas mal cette idée!
je vais en rester la!
merci bien
Pti Pié
en fait j'ai trouvé une autre technique plus facile! :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 'recherche d'une feuille nommée "temp" For i = 1 To ThisWorkbook.Worksheets.Count If ThisWorkbook.Worksheets(i).Name = "temp" Then 'si elle est présente msgbox "ok" End If Next i
Pti Pié
Bonjour,
Bon le post date un peu, mais comme cela est très générique...
Cette solution marche avec la valeur WorkSheetExist=1 dans le premier block If.
On peut simplifier en 3 lignes tout cela...:
Tchao !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Public Function WorkSheetExist(Sheetname As String) As Boolean WorkSheetExist = False On Error Resume Next WorkSheetExist= (Sheets(Sheetname) Is Nothing) ' On Error GoTo 0 ' Pour annuler l'effet on error resume next: inutil en sortie de function End Function
Bonjour,
dans ce cas là, pourquoi laisser la ligne 3 également ?
par défaut, un Booléen est déjà à False
et puis, pourquoi ne pas en profiter pour ajouter un argument permettant de spécifier si la recherche est uniquement dans le classeur hôte de la procédure, dans un autre classeur ouvert, ou dans tous les classeurs ouverts ? Car à chercher une "Feuil1" pouvant être présente dans plusieurs classeurs ouverts, on risque de se prendre les pieds dans le tapis
Le code qui fonctionne demande cependant un NOT dans l'évaluation du nom, on a donc la fonction suivante qui fonctionne bien :
Frantz
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Public Function WorkSheetExist(Sheetname As String) As Boolean ' WorkSheetExist = False Inutile On Error Resume Next WorkSheetExist= NOT (Sheets(Sheetname) Is Nothing) ' On Error GoTo 0 ' Pour annuler l'effet on error resume next: inutil en sortie de function End Function
Autrement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Public Function WorkSheetExist(Sheetname As String) As Boolean On Error Resume Next WorkSheetExist = Sheets(Sheetname).Index End Function
Cordialement.
J'utilise toujours le point comme séparateur décimal dans mes tests.
Il y a également ce code fait par notre ami Marc-L que j'utilise souvent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Function sheetExists(Feuille) As Boolean ' Code Fait par Marc-L sheetExists = Evaluate("ISREF('" & Feuille & "'!A1)") End Function
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager