Vérifier existence d'une feuille
Résolu
nico
-
Heremion Messages postés 564 Statut Membre -
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.
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
-
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
-
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