Utilisation d'une fonction présente dans un autre module

Bonjour à tous,

J'utilise actuellement la fonction ci-dessous pour savoir si une feuille existe ou pas dans un classeur. La fonction marche lorsqu'elle est reprise directement dans le module dans lequel elle est utilisée.

J'aimerais cependant pouvoir l'enregistrer dans un module et l'utiliser dans plusieurs différents modules, mais sans succès.

Public Function FeuilleExiste(FeuilleAVerifier As String) As Boolean
'fonction qui vérifie si la "FeuilleAVerifier" existe dans le Classeur actif

On Error GoTo SiErreur
Dim Feuille

    FeuilleExiste = False
    For Each Feuille In Sheets
        If UCase(Feuille.Name) = UCase(FeuilleAVerifier) Then
            FeuilleExiste = True
            Exit Function
        End If
    Next Feuille
Exit Function

SiErreur:
    FeuilleExiste = CVErr(xlErrNA)
End Function

Lorsque j'utilise cette fonction dans un autre module, je saisi par exemple le code ci-dessous :

If FeuilleExiste("Revue") = True Then
    Sheets("Revue").Range("I4").Value = Date
End If

Si quelqu'un a l'explication je suis preneur.

Merci par avance et bonne journée,

Camille

Bonjour;

Peut-être qu'en déclarant les variables en Public et en dehors des macros!

Public Feuille

Public Function FeuilleExiste(FeuilleAVerifier As String) As Boolean
'fonction qui vérifie si la "FeuilleAVerifier" existe dans le Classeur actif
On Error GoTo SiErreur
    FeuilleExiste = False
    For Each Feuille In Sheets
        If UCase(Feuille.Name) = UCase(FeuilleAVerifier) Then
            FeuilleExiste = True
            Exit Function
        End If
    Next Feuille
Exit Function
SiErreur:
    FeuilleExiste = CVErr(xlErrNA)
End Function

Cdlt

Bonjour Arturo,

Je dois passer à côté de quelquechose j'ai toujours ce message d'alerte

image

Camille

Bonjour,

Tu n'aurais pas laissé une macro nommé "FeuilleExiste" en plus de ta fonction ?

C'était exactement ça !

Merci Geof et merci Arturo

Bonne journée

Camille

Bonsoir,

Pour le fun, une macro sans boucle. Ce qui suit devrait convenir :

Public Function FeuilleExiste(FeuilleAVerifier As String) As Boolean
   On Error Resume Next: FeuilleExiste = Val(ActiveWorkbook.Sheets(FeuilleAVerifier).Index) > 0
End Function
Rechercher des sujets similaires à "utilisation fonction presente module"