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 de feuilles multiples [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 26
    Par défaut Suppression de feuilles multiples
    Bonjour le forum ,

    Je n'arrive pas à supprimer un ensemble de feuilles d'un classeur commançant par une même chaine de caractère. Mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub BlackMountain()
    Dim debut as String
    With Sheets("Feuil1")
      debut = .Cells(3,3).Value
    End With
     
    Suppression (debut & "20*") ' Suppression des feuilles référencées par une première partie en cellule C3 finissant par 2016, 2017, 2018..
    End Sub
     
    Sub Suppression(ByVal Feuille As String)
    For Each X In Sheets
      If X.Name = Feuille Then X.Delete
    Next
    End Sub
    Je ne comprends pas parce que je pensais que dès qu'une étoile était placée, celà représentait n'importe quel reste de chaine de caractère.

    Merci infiniment d'avance pour votre aide

    BlackMountain

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If X.Name like Feuille Then ...

  3. #3
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour le fil, bonjour le forum,

    Une autre méthode :

    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
    Sub BlackMountain()
    Dim O As Worksheet 'déclare la variable O (Onglet)
    Dim TOS() As Variant 'déclare la variable TOS (Tableau des OngletS)
     
    For Each O In Sheets 'boucle sur tous les onglet du classeur
        'condition : si le nom de l'onglet contient le texte en C3 de l'onglet Feuil1 et que les deux avant derniers caractères sont "20"
        If InStr(1, O.Name, Sheets("Feuil1").Range("C3").Value, vbTextCompare) <> 0 And Left(Right(O.Name, 4), 2) = "20" Then
            ReDim Preserve TOS(X) 'redimensionne le tableau des ongles TOS
            TOS(X) = O.Name 'récupère le nom de l'onglet dans la variable indexée X du tableau des onglets TOS
            X = X + 1 'incrémente X
        End If 'fin de la condition
    Next O 'prochain onglet de la boucle
    Application.DisplayAlerts = False 'empêche les messages Excel
    Sheets(TOS).Delete 'supprime tous les onglets du tableau des onglets TOS
    Application.DisplayAlerts = True 'affiche les messages Excel
    End Sub

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 26
    Par défaut
    Bonjour,

    Unparia, ta remarque a très bien fonctionné, merci

    Citation Envoyé par Thautheme Voir le message
    Bonjour le fil, bonjour le forum,

    Une autre méthode :

    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
    Sub BlackMountain()
    Dim O As Worksheet 'déclare la variable O (Onglet)
    Dim TOS() As Variant 'déclare la variable TOS (Tableau des OngletS)
     
    For Each O In Sheets 'boucle sur tous les onglet du classeur
        'condition : si le nom de l'onglet contient le texte en C3 de l'onglet Feuil1 et que les deux avant derniers caractères sont "20"
        If InStr(1, O.Name, Sheets("Feuil1").Range("C3").Value, vbTextCompare) <> 0 And Left(Right(O.Name, 4), 2) = "20" Then
            ReDim Preserve TOS(X) 'redimensionne le tableau des ongles TOS
            TOS(X) = O.Name 'récupère le nom de l'onglet dans la variable indexée X du tableau des onglets TOS
            X = X + 1 'incrémente X
        End If 'fin de la condition
    Next O 'prochain onglet de la boucle
    Application.DisplayAlerts = False 'empêche les messages Excel
    Sheets(TOS).Delete 'supprime tous les onglets du tableau des onglets TOS
    Application.DisplayAlerts = True 'affiche les messages Excel
    End Sub
    Bonjour Thautheme et le forum,

    Merci encore pour ton message, la seule modification par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If X.Name like Feuille Then ...
    a fonctionné, mais ta version permet de voir plus clair pour de gros fichiers et le raisonnement réutilisé pour d'autres applications dont j'aurai potentiellement besoin.

    BlackMountain

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

Discussions similaires

  1. Problème lors de la suppression de feuilles
    Par Ploucouille dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/02/2008, 13h59
  2. Suppression de feuille
    Par Eric93 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/12/2007, 12h50
  3. Debutant: Suppression de feuille
    Par zeralium dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/12/2007, 18h40
  4. [VBA-E]: Suppression de feuilles après création
    Par michel2662 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/04/2007, 17h36
  5. Suppression de feuilles d'un classeur excel
    Par euskadi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2006, 15h41

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