Vérification de l'existance d'une feuille

marc.as

XLDnaute Junior
Bonjour à tous,

Utilisateur d'Excel 2000 sous Win XP.

J'ai une procédure en boucle qui crée une feuille pour chaque entrée dans une liste (ça marche très bien) et qui y recopie des données extraites d'une autre feuille (ça marche aussi)

PB : quand je relance la procédure, je voudrais qu'elle vérifie si la feuille est déjà crée et qu'elle se contente d'une mise à jour dans ce cas, ou qu'elle crée la feuille si celle-ci n'existe pas (cas d'une nouvelle entrée dans ma liste de départ...

j'ai essayé avec le code ci-dessous et une gestion d'erreur, ça marche pour la première feuille, mais j'ai un arrêt sur la seconde feuille?....
merci.
Marc.AS

Code :

Lenom = ActiveCell.Value
Sheets.Add
On Error GoTo gestion
ActiveSheet.Name = Laclasse

Call mise_en_forme_feuille

retour:

Call copie_données
...
gestion:
Application.DisplayAlerts = False
ActiveSheet.Delete
Sheets(Lenom).Select
GoTo retour
 
G

Guest

Guest
Re : Vérification de l'existance d'une feuille

Bonjour Marc,

Voici une fonction à mettre dans un module:

Code:
Public Function GetFeuille(NomDeFeuille As String) As Worksheet
    Dim sh As Worksheet
    On Error Resume Next
    Set sh = ThisWorkbook.Sheets(NomDeFeuille)
    If sh Is Nothing Then
        Set sh = ThisWorkbook.Sheets.Add
        ActiveSheet.Name = NomDeFeuille
    End If
    Set GetFeuille = sh
End Function

Cette fonction vérifie si la feuille NomDeFeuille existe dans le classeur, si elle n'existe pas, elle la crée.

Elle retourne une référence à la feuille (existante ou créée).

Code:
Dim shDest as Worksheet
Lenom = ActiveCell.Value
'Créer éventuellement la feuille 'Lenom'
set shDest=getFeuille(Lenom)
 
'Vérifie qu'on est bien sur la feuille créée
If ActiveSheet.Name<>shDest.name then shDest.Activate
 
'......Suite du programme

A bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12