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 :

Contrôler l’existence d'une feuille [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 144
    Par défaut Contrôler l’existence d'une feuille
    Bonsoir,

    Je cherche, avant d'éxécuter une macro en vba à vérifier si la feuille "tata" (exemple) n'existe pas dans le classeur. Cette feuille peut avoir été créer auparavant par une autre macro.

    Mon but final est qu'en cas qu'elle existe je la supprime avant d'éxécuter ma macro, par la fonction J'ai rien trouver dans le faq et les propositions sur internet ne fonctionne pas. Comme je ne connaissais pas ces fonctions et qu'excel 2007 non plus j'ai laissé tombé ces solutions.


    Merci pour votre aide

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim ws
     
    for each ws in worksheets
    if ws.name = "Tata" then ws.delete
    next ws

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, qqch dans le genre, à adapter à ton contexte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
     
    Private Function FeuilleExiste(sNom As String) As Boolean
        On Error Resume Next
        FeuilleExiste = Sheets(sNom).Name <> ""
        Err.Clear
    End Function
     
    Sub Tst()
        Debug.Print FeuilleExiste("Essai")
    End Sub

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Ou par gestion d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Application.DisplayAlerts = False
    On Error Resume Next
    Sheets("tata").Delete
    On Error GoTo 0
    Application.DisplayAlerts = True

  5. #5
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    @ chrisaccess => sujets récents identiques

    http://www.developpez.net/forums/d12...he-sil-existe/

    Tester si des feuilles existent

    cordialement,

    Didier

  6. #6
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 144
    Par défaut
    Citation Envoyé par mercatog Voir le message
    Ou par gestion d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Application.DisplayAlerts = False
    On Error Resume Next
    Sheets("tata").Delete
    On Error GoTo 0
    Application.DisplayAlerts = True
    bonjour,
    excellent ce code et tout a fait adapter.

    Par contre je le comprends pas
    je me suis servis de l'aide d'excel concernant les fonctions sans pour autant comprendre.

    Pouvez vous m'aider ou m'indiquer un tutoriel qui m'aiderai à comprendre ?

  7. #7
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Quand tu veux manuellement supprimer une feuille contenant des donnée, tu as un message d'alerte d'Excel t'indiquant que le feuille contient des données et si tu veux vraiment la supprimer (pour confirmation)
    Pour désactiver l'affichage des messages d'Excel, on utilise la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.DisplayAlerts = False
    à la fin il faut la remettre à True pour qu'Excel continuerait d'afficher ses messages.


    La ligne permet de supprimer la feuille nommée tata
    2 cas de figure: tata existe, la suppression s'effectue sans problème
    tata n'existe pas, il y a une erreur!

    Pour surpasser l'éventuelle erreur, on utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    On Error Resume Next
    'ici les erreur sont sautée
    On Error GoTo 0
    Toute erreur entre les 2 instructions est ignorée.

    Dans notre cas, si tata n'existe pas, l'erreur engendrée est tout simplement ignorée.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Attention que la gestion d'erreurs n'est pas le top dans ce cas de figure, car l'erreur peut être générée par un autre cas que l'inexistence de la feuille. Dans ce cas, aucune erreur n'est signalée, mais la feuille n'est pas supprimée pour autant.

    On devrait toujours se passer de la gestion d'erreur quand c'est possible, et privilégier un code qui évalue les différents cas de figure.

    @ GBardou

    Je préférerais
    au cas où l'on voudrait supprimer une feuille de type graph
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/07/2009, 17h56
  2. [VB6] [Excel] Résultat d'une requete ds une feuille
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 07/01/2003, 17h52
  3. [VB6] [Excel] Insérer une image dans une feuille
    Par mathias dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 09/10/2002, 07h44
  4. Rattacher une feuille de style a un XML existant
    Par aour dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 08/10/2002, 22h07
  5. [VB6] [Form] Interdire le déplacement d'une feuille
    Par Loïc dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/09/2002, 15h02

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