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 :

suppression d'une feuille si elle existe


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Points : 8
    Points
    8
    Par défaut suppression d'une feuille si elle existe
    Bonjour,

    j'aurai besoin dans un classeur excel, de supprimer une feuille si elle existe!

    pourriez-vous m'aider?

    Merci d'avance,

    Benoit

  2. #2
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    Bonjour

    Essai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        For CompA = 1 To Sheets.Count
            Sheets(CompA).Name ="Toto" then  Sheets(CompA).Delete
        Next CompA

    Bon Courage
    Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
    ---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------

  3. #3
    Responsable
    Office & Excel


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Bonjour et bienvenue sur nos forums.

    Voici une méthode qui fonctionne. Elle est minimaliste car elle ne gère pas l'erreur éventuelle rencontrée (verrouillage de la structure, par exemple).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        On Error Resume Next
        Application.DisplayAlerts = False
        Sheets("feuil5").Delete
        Application.DisplayAlerts = True
    Néanmoins, elle devrait te permettre de t'en sortir
    "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...
    ---------------

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Merci à vous deux!

    les deux solutions ont marchés, mais j'ai préféré mettre celle de pierre fauconnier pour éviter d'avoir le message "êtes-vous sur de vouloir supprimer"

    Et encore désolé d'avoir posté deux questions dans le même message, je vous jure, chef, ça ne se reproduira plus!

    bonne journée,

    benoit

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    752
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 752
    Points : 832
    Points
    832
    Par défaut
    Petite précision sur le code de pierre: si tu place du code derrière, surtout n'oublie pas de mettre l'instruction On Error Goto 0 avant ton code, sinon tu peux avoir des problèmes dans ton code et ne pas les détecter.

    Je te suggère donc cette syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Application.DisplayAlerts = False
    On Error Resume Next
    Sheets("feuil5").Delete
    On Error Goto 0
    Application.DisplayAlerts = True
    ' Ici ton code

  6. #6
    Responsable
    Office & Excel


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Remarque judicieuse de Decondelite.

    Au départ, j'avais voulu donner ma méthode, mais elle peut sembler lourde à certains.

    Pourtant, je la préfère à une technique qui utilise la gestion des erreurs.

    La voici. Elle s'appuie sur une fonction qui teste l'existence de la feuille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Function FeuilleExiste(Nom As String) As Boolean
        Dim sh As Object
     
        For Each sh In Sheets
            If UCase(sh.Name) = UCase(Nom) Then
                FeuilleExiste = True
                Exit For
            End If
        Next
    End Function
     
    Sub SupprimerFeuille()
        Application.DisplayAlerts = False
        If FeuilleExiste("feuil1") Then Sheets("feuil1").Delete
        Application.DisplayAlerts = True
    End Sub
    "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. [XL-2010] Ajouter une feuille si elle n'existe pas
    Par PhaleneCAD dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/02/2011, 20h53
  2. [XL-2003] Supprimer une feuille si elle existe, sinon la créer
    Par nekcorp dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/10/2009, 11h03
  3. Supprimer une colonne d'une feuille si elle est vide dans une autre
    Par xave dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 27/02/2008, 14h05
  4. Masquer une feuille lorsqu'elle perd le focus
    Par bichonviou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/11/2007, 15h31
  5. Suppression d'une feuille sous excel
    Par dimdidi dans le forum Langage
    Réponses: 2
    Dernier message: 06/02/2006, 09h29

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