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

Excel Discussion :

Erreur automation lors d'une macro de suppression [XL-2013]


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Erreur automation lors d'une macro de suppression
    Bonjour,
    Tout d'abord désolé si un sujet comme celui-ci a déjà été posté, je suis novice de ce forum, et n'ai pas trouvé la réponse à mon problème avec la fonction recherche.
    Je tiens à préciser également que je suis encore peu expérimenté sur VBA, il se peut que je n'ai pas bien compris certaines notions.

    Voici mon problème :
    J'ai un fichier Excel qui possède des feuilles masquées, dont certaines précises que je souhaiterais supprimer.
    Je ne veux supprimer que les feuilles masquées qui sont nommées de la façon "G-Rapport " & i & "." & y , i et y étant deux variables numériques.

    Voici le code que j'ai écrit. Le problème est que ce code ne fonctionne qu'une fois.
    En effet, une fois une première feuille supprimée, le passage dans les boucles s'effectue, mais au moment de supprimer une seconde feuille qui répond aux conditions (donc sur le "Sheet.delete") un message d'erreur apparaît : "Erreur d'exécution -21472...." Erreur automation

    Il faut absolument que le passage dans les deux boucles i et y s'effectue car je dois supprimer TOUTES les feuilles qui répondent à ces conditions, et uniquement celles-là (qui sont masquées).
    Si vous avez une idée du pourquoi du comment, j'aimerais comprendre pourquoi le code s'exécute une fois normalement, mais pas ensuite. Et que signifie ce message d'erreur ?

    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
    17
    18
    19
    20
    21
    22
    Sub delete()
     
    Application.DisplayAlerts = False
        Dim Sheet As Excel.Worksheet
        Dim i As Integer
        Dim y As Integer
            i = 1
            y = 2013
     
    For Each Sheet In ThisWorkbook.Worksheets
        If Sheet.Visible = False Then
            For i = 1 To 3
                For y = 2013 To 2014
                    If Sheet.Name = "G-Rapport " & i & "." & y Then
                        Sheet.delete
                    End If
                Next
            Next
        End If
    Next Sheet
     
    End Sub
    Merci d'avance !
    Cordialement.

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

    Votre code ne fonctionne pas car après avoir supprimé le premier onglet, le programme "ne sait plus où il en est" dans le décompte.

    En modifiant l'ordre de vos boucles comme ci-dessous, le décompte est réalisé après chaque suppression d'onglet.

    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
    17
    18
    19
    20
    21
    22
    23
     
    Sub SupprimerLesOngletsCaches()
     
    Dim Sh As Worksheet
    Dim I As Integer
    Dim Y As Integer
     
        I = 1
        Y = 2013
     
        For I = 1 To 3
            For Y = 2013 To 2014
                For Each Sh In ThisWorkbook.Worksheets
                    If Sh.Name = "G-Rapport " & I & "." & Y And Sh.Visible = False Then
                       Application.DisplayAlerts = False
                       Sh.Delete
                       Application.DisplayAlerts = True
                    End If
                 Next Sh
             Next Y
        Next I
     
    End Sub
    Je vous conseille également de ne pas utiliser de mots réservés pour déclarer vos variables (sheet) ou baptiser vos procédures (Delete).

    Cordialement.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Re,
    Effectivement dans ce sens les boucles fonctionnent, et je n'avais pas pensé à faire 2 conditions dans le IF pour éviter une boucle supplémentaire.

    Donc le message d'erreur signifie que le programme est perdu, mais pourquoi sur mon code de base le programme se perd-il dans les boucles ?

    Merci pour la correction, et également pour les conseils sur les noms réservés !

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Akhekhu Voir le message
    Re,
    Donc le message d'erreur signifie que le programme est perdu, mais pourquoi sur mon code de base le programme se perd-il dans les boucles ?
    Parce que dans votre code, le programme essaie de repasser sur un index qui n'existe plus. Dans le mien, à chaque suppression, le programme travaille sur les onglets restants.

    Cordialement.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Ah en effet, merci pour la précision.
    Problème résolu de fait, encore merci de votre réactivité !

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

Discussions similaires

  1. [AC-2010] Message d'erreur 7711 lors d'une Macro Access
    Par BABETH77 dans le forum IHM
    Réponses: 1
    Dernier message: 06/03/2019, 17h49
  2. Réponses: 5
    Dernier message: 02/06/2015, 13h22
  3. [XL-97] Erreur 13 lors d'une tentative de suppression de doublons d'une listbox
    Par Michel Delapouaitte dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 15/04/2009, 11h28
  4. Message d'erreur inattendue lors d'une suppression
    Par Just-Soft dans le forum Bases de données
    Réponses: 8
    Dernier message: 18/11/2008, 11h42
  5. erreur 1335 lors d'une installation
    Par ganga dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 21/07/2005, 16h34

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