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 :

Supprimer une feuille sans confirmation dans une boucle


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2017
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2017
    Messages : 79
    Par défaut Supprimer une feuille sans confirmation dans une boucle
    Bonjour

    Je souhaite supprimer une feuille sans confirmation. Habituellement j'utilise avec succès:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub toto()
    Application.DisplayAlerts = False
    Sheets(1).Delete
    Application.DisplayAlerts = True
    End Sub
    Seulement cette fois ci, j'aimerais l'intégrer dans la boucle ci-dessous que j'utilise également habituellement avec succès:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For CompA = 1 To Sheets.Count
                                 If Sheets(CompA).Name = "Relances" Then _
                                 Sheets(CompA).Delete
                                 Next CompA
    Cela donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For CompA = 1 To Sheets.Count
                                 If Sheets(CompA).Name = "Relances" Then _
                                 Application.DisplayAlerts = False
                                 Sheets(CompA).Delete
                                 Application.DisplayAlerts = True
                                 Next CompA
    Mais cela ne fonctionne pas, une fenêtre d'erreur apparaît: "Erreur d'exécution 9, l'indice n'appartient pas à la sélection"

    Merci par avance de vos réponses.
    Cdt
    Guillaume

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par buigui Voir le message
    Bonjour,

    Il faut commencer votre boucle par la fin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For CompA = Sheets.Count To 1 Step -1

  3. #3
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2017
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2017
    Messages : 79
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Bonjour,

    Il faut commencer votre boucle par la fin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For CompA = Sheets.Count To 1 Step -1
    Bonjour Eric

    Avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub TEST()                      
                        For CompA = Sheets.Count To Step - 1
                                 If Sheets(CompA).Name = "Relances" Then _
                                 Sheets(CompA).Delete
                                 Next CompA                
     
    End Sub
    ... la suppression de feuille ne fonctionne plus.
    Chez toi oui?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par buigui Voir le message
    Il manque 1 derrière To

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For CompA = Sheets.Count To 1 Step -1

  5. #5
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2017
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2017
    Messages : 79
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Il manque 1 derrière To

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For CompA = Sheets.Count To 1 Step -1
    Désolé de la mauvaise lecture, merci cela fonctionne, par contre un nouveau problème apparait. Avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub TEST()
                      For CompA = Sheets.Count To 1 Step -1
                                 If Sheets(CompA).Name = "Relances" Then _
                                 Application.DisplayAlerts = False
                                 Sheets(CompA).Delete
                                 Application.DisplayAlerts = True
                                 Next CompA
    End Sub
    ... le feuille "Relances" se supprime bien sans confirmation. Par contre maintenant la macro me propose de supprimer une à une toutes les autres feuilles.. Vois-tu?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par buigui Voir le message
    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
     
    Option Explicit
     
    Sub TEST()
     
    Dim CompA As Integer
     
        For CompA = Sheets.Count To 1 Step -1
            If Sheets(CompA).Name = "Relances" Then
               Application.DisplayAlerts = False
               Sheets(CompA).Delete
               Application.DisplayAlerts = True
            End If
        Next CompA
    End Sub

  7. #7
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2017
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2017
    Messages : 79
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    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
     
    Option Explicit
     
    Sub TEST()
     
    Dim CompA As Integer
     
        For CompA = Sheets.Count To 1 Step -1
            If Sheets(CompA).Name = "Relances" Then
               Application.DisplayAlerts = False
               Sheets(CompA).Delete
               Application.DisplayAlerts = True
            End If
        Next CompA
    End Sub
    Super merci. C'était la présence d'un underscore après then, et l'absence d' End if dans ma formule qui la différenciaient de la tienne. Et devaient la faire échouer.
    Bonne journée

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/11/2017, 07h17
  2. [Toutes versions] DAO et ADO : Copier dans une variable et non dans une feuille
    Par 4k1r4 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/12/2015, 09h50
  3. copier dans une feuille et coller dans une autre feuille
    Par papa64 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/07/2011, 23h06
  4. Renseigner une liste sans doublon dans une feuille ou dans un userform
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 26/01/2009, 14h54
  5. Recherche de valeur dans une feuille et affichage dans une autre
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/05/2007, 09h40

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