Test si onglet présent

[Résolu]
Signaler
Messages postés
18
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
13 juillet 2010
-
Messages postés
18
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
13 juillet 2010
-
Bonjour,

Dans le cadre du developpement d'un outil d'industrialisation de recette, j ai dans un répertoire des fichiers textes les noms des fichiers textes correspondent avec les noms des onglets (32 onglets), mais je ne recupere pas systématiquement les 32 fichiers et certains fichiers textes n'appartiennent pas à la liste des onglets.

j ai parcourus un max de solutions de verification de présence d'onglets mais j ai toujours l erreur "L'indice n'appartient pas à la selection".  malgrés l'inhibition du displayalert pareil meme message d'erreur.

Mon Code :

Public Function SheetExist(Sheet As String) As Boolean
 
On Error GoTo Error
MonExcel.Worksheets(Sheet).Select
SheetExist = True
Exit Function
Error: SheetExist = False
Exit Function


End Function

Merci d'avance

>SEB<

2 réponses

Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
Bonjour
Si l'erreur arrive dans la fonction SheetExist c'est que l'object MonExcel n'est pas initialisé.
Dans le code appelant il manque quelque chose du genre :Set MonExcel =
Dans le code appelé SheetExist : tester MonExcel  (is not Nothing )
Messages postés
18
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
13 juillet 2010
1
merci de ta réponse mais il est initialisé dans le sub Main avec :
Set MonExcel = Excel.Application

j'ai trouver un moyen détourné à voir :

Function WorksheetExists(Name As String, Optional wb As Workbook) As Boolean
Dim ws As Worksheet


For Each ws In Worksheets    If ws.Name z Then WorksheetExists True Else: WorksheetExists = False: Exit For
Next
  Sleep w
End Function

et dans monSub Main :

If WorksheetExists(z) Then MonClasseur.Sheets(z).Activate Else: MonExcel.Sheets(2).Range("C" + CpFAV1).Interior.ColorIndex = 5: Exit Do

En tout cas merci de ta réponse

>SEB<