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

Signaler
-
Messages postés
8206
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
9 octobre 2020
-
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!





5 réponses

Messages postés
8206
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
9 octobre 2020
1 488
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
5
Merci

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

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
253
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
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
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
253
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
merci beaucoup c'est super!

bonne journée