Vérifier existence d'une feuille

Résolu
nico -  
Heremion Messages postés 564 Statut Membre -
Bonjour,

j'ai un petit soucis
j'utilise ce code dans une macro pour activer la bonne feuille :

For Each shFo In Worksheets
Set a = shFo.Range("A1").Find(shBase.Range(référence).Value, lookat:=xlWhole
If Not a Is Nothing Then
Worksheets(shFo.Name).Activate
Exit For
End If
Next
active une autre macro

- je faisais ma recherche sur A1 mais maintenant la recherche peut se faire sur le nom de la feuille donc si ça vous arrange vous pouvez modifier.
- quand je lance la macro avec une référence ne correspondant à aucune feuille existante, je n'ai aucune erreur et pire la macro se poursuit et je me retrouve avec des données écrites mais sur la feuille qui était active à l'ouverture. du coup cetet feuille là comprend des données qui ne devraient pas être présentes.

donc je ne sais pas comment modifier le code pour que ça m'alerte que la feuille n'existe pas et donc que la macro s'arrête.
Si vous pouviez m'aider.

2 réponses

  1. Heremion Messages postés 564 Statut Membre 102
     
    Bonjour Nico,

    Tu peux utiliser la fonction ci-dessous pour savoir si la feuille appelée StrName existe

    Public Function IsWorksheet(strName As String) As Boolean
       Dim objWorksheet As Worksheet
       IsWorksheet = False
       For Each objWorksheet In ActiveWorkbook.Worksheets
          If objWorksheet.Name = strName Then
             IsWorksheet = True
          End If
       Next
    End Function 

    0
    1. nico
       
      Bonjour et merci de m'aider
      par contre je ne sais pas comment utiliser cette fonction. je l'ai collée dans un module mais j'imagine que je dois l'appeler depuis le code que j'ai collé dans mon message initial ?!
      0
  2. Heremion Messages postés 564 Statut Membre 102
     
    Oui, tu appelles simplement en faisant :

    if IsWorkSheet("NomDetaFeuille") then
      --Je fais le code si elle existe
    else
    --Je renvoie un message par exemple
    end if 

    0
    1. nico
       
      ah oui effectivement ça fonctionne mieux et c'est plus simple que ce que j'avais notamment pour la condition.
      Merci beaucoup, ça m'enlève uen épine du pied
      0
    2. Heremion Messages postés 564 Statut Membre 102
       
      Avec plaisir. Par souci d'aide aux personnes qui auront peut-être le même problème que toi, penses à noter ce post en résolu :)
      0