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 feuilles spécifiques


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 94
    Par défaut Suppression feuilles spécifiques
    Bonjour le forum

    J'ai le code ci-dessous qui fonctionne correctement et qui me supprime bien la feuille:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub Delete ()
    For Each Feuille In ActiveWorkbook.Wofsheets
    If Left (Ucase(Feuille.Name, 7) = "Contrat" Then
    Application.DisplayAlerts = False
    Feuille.Delete
    Application.DisplayAlerts = True
    Exit For
    End If
    Next Feuille
    End Sub
    Ce que je souhaiterais, c'est de modifier plusieurs feuilles (et uniquement celles-ci) qui commencent par "contrat"
    Les feuilles nommées peuvent être du style:
    "contrat (1)" ou bien "contrat N°1" ainsi de suite...

    D'avance merci

    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je ne comprends pas ta question, car à priori ton code fonctionne, alors ?

    Que veux-tu dire par modifier ?

    Philippe

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Une solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Test()
        For Each Feuille In ActiveWorkbook.Worksheets
            If Left(UCase(Feuille.Name), 7) = "CONTRAT" Then
                MsgBox "Action à réaliser sur la feuille " & Feuille.Name
            End If
        Next Feuille
    End Sub
    Cordialement.

  4. #4
    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
    Citation Envoyé par CLAUDE19 Voir le message
    J'ai le code ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub Delete ()
     
    End Sub
    Bonjour,

    A éviter : employer des mots clefs VBA en noms de procédures, variables etc !

    ici Delete est le nom d’une Méthode que tu emploies d'ailleurs ensuite,

    Sinon même remarque que Philippe

    cordialement,

    Didier

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 94
    Par défaut Suppression feuilles spécifiques
    Je vais avoir du mal à être plus clair, mais je vais essayer.

    Sur la feuille "contrat" c'est ok. Mais les futurs utilisateurs, vont créer à l'utilisation du fichier, des feuilles commencant par "contrat" et chacune de ces feuilles crées vont avoir des extensions aprés un espace, exemple "contrat N1" ou "contrat 12" ou "contrat AB".
    Toutes ces feuilles et uniquement celles ci (commencant par "contrat") je souhaite qu'elles soient supprimées à la fermeture du fichier.

    Ma question est: Comment puis je rédiger ma ligne de code pour que ces feuilles soient supprimées?

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    en corrigeant tes 3 premières lignes de codes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub DeleteFeuille () 'Eviter les mots réservés comme nom ..
    For Each Feuille In ActiveWorkbook.Worksheets 'Erreur de framme 
    If Left (Ucase(Feuille.Name, 7) = "CONTRAT" Then 'Ucase c'est pour majuscule..
    (...)
    ce n'est pas bon ?

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 94
    Par défaut Suppression feuilles spécifiques
    Non, ce n'est pa ce que je souhaite. Ce sont les lignes que j'ai écris au début de la discussion.
    Ce que je souhaite c'est supprimer, toutes les feuilles contenant "Contrat".
    Donc la feuille peut s'appeler "1ier contrat" ou bien "Contrat début" ou bien Fin de contrat" etc...

    Mais je ne souhaite pas, que les autres feuilles (ne contenant pas "Contrat" soit supprimer.

    Et ceci, lorsque l'utilisateur ferme son fichier. Et donc sans action de sa part.

    Mais peut être que cela n'est pas possible

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 94
    Par défaut Suppression feuilles spécifiques
    Je crois avoir trouvé, les lignes ci-dessous fonctionnent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Sub DeleteFeuille()
    Dim i
    Application.DisplayAlerts = False
    For i = Worksheets.Count To 1 Step -1
    If Left (Sheets(i).Name, 7) = "Contrat" Then
    Sheets (i).Select
    ActiveWindow.SelectedSheets.Delete
    Else
    End If
    Next i
    End Sub
    Merci à tous

    Cordialement

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

Discussions similaires

  1. [XL-97] création raccourcis pour des ouvrir un feuille spécifique
    Par philippou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/10/2010, 18h54
  2. Sauvegarder une feuille spécifique dans un nouveau classeur Excel
    Par thomasisajerk dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/08/2010, 11h12
  3. suppression feuille avec nom variable
    Par miopie dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/07/2010, 10h23
  4. [DDE]Exporter vers Excel dans une feuille spécifique
    Par javelot69 dans le forum Access
    Réponses: 8
    Dernier message: 05/04/2007, 12h36
  5. Suppression feuille Excel depuis access
    Par clad523 dans le forum Access
    Réponses: 1
    Dernier message: 15/12/2005, 11h09

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