Appel d'une fonction

Résolu
Signaler
Messages postés
2
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
25 mai 2007
-
Messages postés
2
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
25 mai 2007
-
Bonjour,
J'essaie actuellement d'exploiter des tableaux de données sous Excel. J'ai réalisé une macro avec mes maigres connaissances, qui me premet de réaliser des opérations sur ces tableaux. Ces tableaux étant de tailles conséquentes (au moins 100 lignes * 1000 colonnes) je considère un tableau par feuille.
Dans ma macro j'ai besoin de faire un test sur l'existence d'une feuille :

Dim W As Worksheet
    On Error Resume Next
    Set W = ThisWorkbook.Worksheets(feuille)
    On Error GoTo 0
    '(W = Nothing quand l'objet attribué à la variable n'existe pas)
    If Not W Is Nothing Then
            MsgBox "La feuille existe dans le classeur."
        Else
            MsgBox "La feuille n'existe pas dans le classeur."
            End If

Pour éviter de reproduire de nombreuses fois ces lignes dans ma macro je voudrais les utiliser comme une fonction ou procédure, un truc du style :

Dim feuille1 As worksheet
Test_existence feuille1

Et que la fonction me renvoie 1 si la feuille existe et 0 sinon...

Merci d'avance!

3 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,
Private Function Test_existence(ByVal NomFeuille As String) As Boolean
        Dim W As Worksheet
    On Local Error Resume Next
    Set W = ThisWorkbook.Worksheets(NomFeuille)
    On Error GoTo 0
    '(W = Nothing quand l'objet attribué à la variable n'existe pas)
    If Not W Is Nothing Then
            Test_existence = True
        Else
            Test_existence = False
        End If
End Function

Exemple :
Msgbox Test_existence(feuille)

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~

nouveau Forum ! Exclusivement Office / VBA
                                                                                                                    
                                                                                          
Messages postés
43
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
15 décembre 2008

je crois que tu as déja écris ta fonction mais il faut juste faire ceci :

public function FeuilleExiste(feuille as string) as boolean

Dim W As Worksheet
    On Error Resume Next
    Set W = ThisWorkbook.Worksheets(feuille)
    On Error GoTo 0
    '(W = Nothing quand l'objet attribué à la variable n'existe pas)

    If Not W Is Nothing Then
                         FeuilleExiste =true 
        Else
                   FeuilleExiste = false

    End If
end function


Cette function prendra true si la fauille existe ; il te suffira donc de l'appel

dim test as boolean

test = FeuilleExiste("feuille1")


if test = true then
msgbox " la feuille exite"
else
msgbox " elle n'existe pas
end if
Messages postés
2
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
25 mai 2007

Merci, vos deux solutions marchent niquel !
(pour info, j'avais un problème dans la déclaration de ma fonction...)