VBA Condition "Si la feuille existe" Alors... [Fermé]

- - Dernière réponse : Patrice33740
Messages postés
7846
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
11 novembre 2019
- 2 sept. 2010 à 16:17
Bonjour,

Dans ma macro, jai besoin de verrifier si la feuille "NOM" existe avant de continuer ma procedure, mais je ne sais pas comment cela s'ecrit en VBA, quelqu'un aurait-il une réponse?

Merci!





Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
7846
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
11 novembre 2019
1236
5
Merci
Bonjour,

Il n'est pas nécessaire de faire une boucle pour chercher si la feuille existe,
il suffit de faire ceci :

Function Feuille_Existe(ByVal Nom_Feuille As String) As Boolean
Dim Feuille As Excel.Worksheet  
  On Error GoTo Feuille_Absente_Error
    Set Feuille = ActiveWorkbook.Worksheets(Nom_Feuille)
  On Error GoTo 0
  Feuille_Existe= True
Exit Function

Feuille_Absente_Error:
  Feuille_Existe= False
End Function

et pour l'utiliser :

If Feuille_Existe("Feuil1") Then
ou

If Not Feuille_Existe("Feuil1") Then

Dire « Merci » 5

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 70689 internautes nous ont dit merci ce mois-ci

Messages postés
1184
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
228
2
Merci
sub test()
Dim Sh as Variant
Dim feuilleExiste as boolean

For Each Sh In Worksheets
If Sh.Name = "NOM" Then
MsgBox "lafeuille " & Sh.Name & " existe"
feuilleExiste=true
End If
Next

' maintenant tu peux faire if feuilleExiste then.....

End sub
1
Merci
Merci beaucoup!

Est ce que je peux faire quelque chose comme ca :

(...) le debut de ma sub principale (...)

Call test (NomCherche)

If FeuilleExiste Then

(....)

?
Messages postés
1184
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
228
1
Merci
Fais plutôt comme cela...


Function IsFeuilleExiste(NomFeuille As String) As Boolean 
' la fonction renvoie True ou False 
On Error Resume Next 

Dim Sh As Variant 
IsFeuilleExiste = False 
For Each Sh In Worksheets 
    If Sh.Name = NomFeuille Then 
        IsFeuilleExiste = True 
    End If 
Next 

End Function 


et pour l'utiliser 

Sub test() 
y = IsFeuilleExiste("Feuil100") ' renvoie faux ... feuil100 n'existe pas
z=IsFeuilleExiste("Feuil1") ' renvoie vrai ...feuil1 existe
End Sub
1
Merci
merci beaucoup c'est super!

bonne journée