Test si onglet présent

Résolu
cs_SEB71 Messages postés 18 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 13 juillet 2010 - 23 déc. 2008 à 10:27
cs_SEB71 Messages postés 18 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 13 juillet 2010 - 23 déc. 2008 à 14:13
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

cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
23 déc. 2008 à 12:54
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 )
3
cs_SEB71 Messages postés 18 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 13 juillet 2010 1
23 déc. 2008 à 14:13
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<
3
Rejoignez-nous