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


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 117
    Par défaut Suppression de feuilles
    Bonjour le forum,

    Dans un fichier que j'appellerai A j'ai la macro ci-dessous qui m'interdit de supprimer les feuilles 5, 6, 7 et 8. Jusque là c'est bon.

    Par contre, le lendemain si j'ouvre un fichier que j'appellerai B et que je souhaite supprimer une ou plusieurs feuilles il m'ouvre automatiquement le fichier A. Pourquoi ?

    Ne peut-on pas faire en sorte que ce fichier A ne s'ouvre plus systèmatiquement lorsqu'on veut supprimer une feuille d'un autre classeur ?

    Avez-vous une explication à ce problème ?

    Voici la macro présent dans le module1 du fichier A :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub ModifierSupprimerFeuille()
    Application.ScreenUpdating = False
    'modification du message excel quand on supprime une feuille
    Dim c As CommandBarControl
    For Each c In Application.CommandBars.FindControls(ID:=847)
    c.OnAction = "SupFeuil"
    Next c
    End Sub
     
    Sub SupFeuil()
    Application.ScreenUpdating = False
     
          If ActiveSheet.Index = 5 Or ActiveSheet.Index = 6 Or ActiveSheet.Index = 7 Or ActiveSheet.Index = 8 Then
    MsgBox "Vous ne pouvez pas supprimer cette feuille!", vbc + vbOKOnly + vbExclamation, "Opération interdite"
          Else
          Select Case MsgBox("Attention vous allez supprimer cette feuille  !", vbc + vbYesNo + vbExclamation, "Supression de la feuille")
    Case vbYes
    ActiveSheet.Delete
    Case vbOK
    Exit Sub
    End Select
    End If
    Exit Sub
    End Sub
     
    Sub RetablirSupprimerFeuille()
    Application.ScreenUpdating = False
    Dim c As CommandBarControl
    For Each c In Application.CommandBars.FindControls(ID:=847)
    c.OnAction = ""
    Next c
    End Sub

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Par défaut
    Bonjour thomasdu40 et le forum

    pout ton pbm je pense que c'est la manière dont tu apelles tes macros en fait la sub RetablirSupprimerFeuille() n'est jamais activer donc quand tu veux supprimer une feuille dans un autre classeur cça te créer le pbm
    essayes le code 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub auto_open() 'ton ancienne ModifierSupprimerFeuille()
    Application.ScreenUpdating = False
    'modification du message excel quand on supprime une feuille
    Dim c As CommandBarControl
    For Each c In Application.CommandBars.FindControls(ID:=847)
    c.OnAction = "SupFeuil"
    Next c
    End Sub
     
    Sub SupFeuil()
    Application.ScreenUpdating = False
     
    If ActiveSheet.Index = 5 Or ActiveSheet.Index = 6 Or ActiveSheet.Index = 7 Or ActiveSheet.Index = 8 Then
    MsgBox "Vous ne pouvez pas supprimer cette feuille!", vbc + vbOKOnly + vbExclamation, "Opération interdite"
    Else
    Select Case MsgBox("Attention vous allez supprimer cette feuille !", vbc + vbYesNo + vbExclamation, "Supression de la feuille")
    Case vbYes
    ActiveSheet.Delete
    Case vbOK
    Exit Sub
    End Select
    End If
    Exit Sub
    End Sub
     
    Sub auto_close() '  ton ancienne RetablirSupprimerFeuille() qui s'apelle automatiquement à la fermeture du classeur  
    Application.ScreenUpdating = False
    Dim c As CommandBarControl
    For Each c In Application.CommandBars.FindControls(ID:=847)
    c.OnAction = ""
    Next c
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 117
    Par défaut
    OK merci domimart.

    Maintenant le problème est résolu. Même en supprimant une ou des feuilles d'un autre fichier, le classeur contenant la macro ne s'ouvre plus.

    Merci de ton aide.

+ 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, 12h59
  2. Suppression de feuille
    Par Eric93 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/12/2007, 11h50
  3. Debutant: Suppression de feuille
    Par zeralium dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/12/2007, 17h40
  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, 16h36
  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, 14h41

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