Fonction qui valide la présence d'une feuille

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

siocnarf

XLDnaute Occasionnel
Bonjour,

Si j'utilise la fonction FeuilleExiste de cette façon cela fonctionne correctement.
If FeuilleExiste("Feuil1") Then
Sheets("Feuil1").Select
Sheets("Feuil1").Name = VDatadeBase1(1)
End If

Si j'utilise ma fonction ainsi alors j'obtiens un type d'argument by ref incompatible. La valeur de VDatadeBase1(1) est "serveurs"

If not FeuilleExiste(VDatadeBase1(1)) Then
Sheets("Feuil1").Select
Sheets("Feuil1").Name = VDatadeBase1(1)
End If


Public Function FeuilleExiste(sNomFeuille As String) As Boolean
'Validation de l'existence d'une feuille
On Error GoTo Err_FeuilleExiste
FeuilleExiste = False
FeuilleExiste = Not ActiveWorkbook.Worksheets(sNomFeuille) Is Nothing
Err_FeuilleExiste:
End Function

Comment puis-je faire pour être compatible dans les 2 scénarios?

Merci,

François Racine
 
Re : Fonction qui valide la présence d'une feuille

Bonjour siocnarf, Habitude,

L'argument de la fonction doit être As Variant :

Code:
Public Function FeuilleExiste(sNomFeuille As Variant) As Boolean
On Error GoTo Err_FeuilleExiste
FeuilleExiste = False
FeuilleExiste = Not ActiveWorkbook.Worksheets(CStr(sNomFeuille)) Is Nothing
Err_FeuilleExiste:
End Function
écrit plus simplement :

Code:
Function FeuilleExiste(sNomFeuille) As Boolean
On Error Resume Next
FeuilleExiste = Not ActiveWorkbook.Worksheets(CStr(sNomFeuille)) Is Nothing
End Function
CStr est nécessaire si la valeur envoyée comme argument est un nombre.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour