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 :

Effacer le code VBA d'une Worksheet par VBA [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Effacer le code VBA d'une Worksheet par VBA
    Salut les amis,

    Je copie une feuille de travail de mon classeur en créant un nouveau classeur.
    Dans le code affecté à cette feuille, se trouvent des procédures évènementielles (Clic sur bouton de commande, évènement Activate...).

    J'avais conservé ce code retourné par l'un de mes premiers interlocuteurs, OusKelnor ,

    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
    Application.EnableEvents = False
     
    Dim i As Byte
     
    Worksheets("Report").Copy
     
    With ActiveWorkbook
        With .VBProject.VBComponents("Report").CodeModule
            For i = .CountOfLines To 1 Step -1
                .DeleteLines i
                DoEvents
            Next
        End With
     
    With .Worksheets("Report").UsedRange
    .Value = .Value
    End With
    End With
    Erreur d'exécution 9 L'indice n'appartient pas à la sélection.
    Je ne comprends pas.

    La syntaxe du code aurait-elle changé sur les versions récentes d'Excel?

    Merci par avance pour vos lumières.

  2. #2
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    Bien vérifier que ça soit le CodeName qui soit utilisé dans la procédure et nom le nom de la feuille (pour le récupérer):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Exemple()
    Dim MonCodenameEst As String
     
        MonCodenameEst = ActiveSheet.CodeName
        'ou => MonCodenameEst = Sheets("Nom de la feuille").CodeName
     
    End Sub

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Re Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    La syntaxe du code aurait-elle changé sur les versions récentes d'Excel?
    La réponse est positive.
    Il faut écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
    Mais pourquoi plutôt que le nom de la feuille.

    Veux savoir! Na!

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Hé salut Ryu!

    Nos post se sont télescopés.
    Merci pour ta réponse.

    Comme je l'ai demandé.
    Sachant que c'est une feuille qui est copiée, pourquoi ne pas utiliser son nom comme en 2009?
    Version 2016 d'Excel?

  5. #5
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Re,

    A vrai dire je ne sais pas, j’ai vu cela il n’y a pas longtemps qd j’ai répondu à un post.
    Quoiqu’il en soit le codename restera maître du pointage pour une feuille son nom étant changé rarement.
    Ce qui peut être pratique lors d’un changement de nom d’une feuille dont on ne veut pas changer le code se trouvant par exemple dans un module grâce à l’utilisation du codename en place au lieu du nom de la feuille …

    Édit : Mais je trouve cela plus logique car comme cela on accède directement à ce que l’on veut que ça soit une feuille ou un module

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    D'accord.

    Merci Ryu

    Bonne soirée et au plaisir de te retrouver.

  7. #7
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    PS :
    J’ai écrit une procédure pour écrire du code dans une feuille ou un module.
    J’ai qq petites idées d’amélioration en tête … …
    https://www.developpez.net/forums/d1.../#post10781778

  8. #8
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Vu. Cela peut-être utile.

    Au plaisir.

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

Discussions similaires

  1. Réponses: 25
    Dernier message: 21/09/2017, 10h45
  2. Réponses: 3
    Dernier message: 23/10/2015, 13h51
  3. Effacer le code VBA d'une "Sheet"
    Par martincactus dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 10/06/2008, 20h33
  4. Réponses: 4
    Dernier message: 13/10/2005, 15h44
  5. Réponses: 2
    Dernier message: 11/10/2005, 10h15

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