IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Syntaxe :SI telle feuille existe ? [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 132
    Points : 59
    Points
    59
    Par défaut Syntaxe :SI telle feuille existe ?
    Bonjour,

    J'aimerai faire un test qui consiste à dire si telle feuille existe alors je ne crée pas la feuille.
    Ou le contraire si tel feuille n'existe pas je crée la feuille ...

    Cordialement
    Benjamin

  2. #2
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 485
    Points : 875
    Points
    875
    Par défaut
    Salut Benjycool,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function FeuilleExiste(ByVal strNomFeuille as String) as Boolean
     
    FeuilleExiste = False
     
    For each objFeuille in ThisWorkbook.Sheets
      If objFeuille.Name=strNomFeuille then
        FeuilleExiste = True
        Exit For
      End if
    Next
     
    End Function
    strNomFeuille est le nom de la feuille à tester.

    Tu peux donc créer la feuille ou pas, en fonction du résultat de la fonction FeuilleExiste. Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub CréerFeuille()
     
        NomFeuille = "InspecteurDerrick" 'Ben oui, pourquoi pas ?
        If FeuilleExiste(NomFeuille) = False Then
            Set NewSheet = ThisWorkbook.Sheets.Add
            NewSheet.Name = NomFeuille
            Set NewSheet = Nothing
        End If
     
    End Sub



    non ?

  3. #3
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour Benjycool,

    on peut aussi passer par macro!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub es()
     Dim Ws As Worksheet
     For Each Ws In Worksheets
      If Ws.Name = "TOTO" Then MsgBox "Ce nom de feuille existe déjà !": Exit Sub
     Next Ws
     Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "TOTO"
    End Sub

  4. #4
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 132
    Points : 59
    Points
    59
    Par défaut
    Ok merci c'est gentil, mais existe t-il pas une syntaxe du genre :

    Si tel feuille existe alors rien sinon oon on crée, mais sans faire de boucle ?


    Benjamin

  5. #5
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Pourquoi ne pas faire de boucle, j'ai parfois du mal à comprendre pourquoi certaines personnes developpent en se mettant des restrictions techniques.

    Avec quelques feuilles ça ne prend pas beaucoup de temps, quoiqu'il en soit il existe une autre solution en passant par la gestion d'erreur.

  6. #6
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re, comme le dit l'ami ALEX pourquoi une boucle pose pb..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub es()
        Dim Ws As Worksheet
        On Error Resume Next
            Set Ws = ThisWorkbook.Worksheets("TOTO")
        On Error GoTo 0
     If Ws Is Nothing Then Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "TOTO"
    End Sub
    On Error GoTo 0 pas forcement utile ??

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copie de Feuille_Renommer avec "bis" si feuille existe déjà
    Par melouille56 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/01/2008, 11h57
  2. calcul si la feuille existe
    Par jekeclo dans le forum Excel
    Réponses: 3
    Dernier message: 26/12/2007, 11h22
  3. [VBA-E] Si la feuille existe alors
    Par raymoundo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/01/2007, 14h19
  4. Syntaxe de l'expression EXISTS
    Par rockrider dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/05/2006, 14h22
  5. Réponses: 2
    Dernier message: 16/03/2006, 17h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo