Olfactif Basic
Messages postés2Date d'inscriptionmercredi 23 mai 2007StatutMembreDernière intervention25 mai 2007
-
23 mai 2007 à 17:31
Olfactif Basic
Messages postés2Date d'inscriptionmercredi 23 mai 2007StatutMembreDernière intervention25 mai 2007
-
25 mai 2007 à 10:19
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...
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 23 mai 2007 à 17:42
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~
cs_GigaCool
Messages postés43Date d'inscriptionmardi 10 avril 2007StatutMembreDernière intervention15 décembre 2008 23 mai 2007 à 17:46
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