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 :

Plantage systematique sur la création automatique d'une macro [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 63
    Points : 48
    Points
    48
    Par défaut Plantage systematique sur la création automatique d'une macro
    Bonjour,

    Au cours de géénration de page de synthèse, je tente de mettre un code sous l'espace privée des feuilles pour activer des macros par douvle click.

    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
     
    For p = 1 to 5
          Worksheets("Bench Domaine " & p).select 
          indexfeuille = Worksheets("Bench Domaine " & p).CodeName
          'Recherche de l'index systeme                      
          For i = 1 To ActiveWorkbook.VBProject.VBComponents.Count
               If ActiveWorkbook.VBProject.VBComponents(i).Name = indexfeuille Then nb_index = i
          Next
          code = ""
          code = "Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)" & vbCrLf
          code = code & "t = bench_routine(Target.Row, Target.Column)" & vbCrLf
          code = code & "End Sub"
         With ThisWorkbook.VBProject.VBComponents(nb_index).CodeModule
                 nextline = .CountOfLines + 1
                               .InsertLines nextline, code
        End With
    next p
    J'ai bien coché le "Faire confiance au projet visual basic " dans l'editeurs approuvés.

    Cependant, le programme plante sévèrement car excel se ferme brutallement.

    Je comprends pas pourquoi ...
    Quelqu'un voit ?
    Merci de l'aide.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    Bonsoir

    Tu peux utiliser cette adaptation

    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
    Dim p As Integer
    Dim X As Integer
    Dim Code As String
    Dim Ws As Worksheet
     
    Code = "Private Sub Worksheet_BeforeDoubleClick(ByVal " & _
        "Target As Range, Cancel As Boolean)" & vbCrLf
    Code = Code & "t = bench_routine(Target.Row, Target.Column)" & vbCrLf
    Code = Code & "End Sub"
     
    For p = 1 To 5
     
        Set Ws = ThisWorkbook.Worksheets("Bench Domaine " & p)
     
        With ThisWorkbook.VBProject.VBComponents(Ws.CodeName).CodeModule
            X = .CountOfLines
            .InsertLines X + 1, Code
        End With
     
    Next p

    bonne soirée
    michel

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 63
    Points : 48
    Points
    48
    Par défaut
    Bonsoir Michel,

    merci de tes améliorations précieuses.

    Une remarque supplémentaire pour nos amis développeurs.
    J'avais mis ces quelques lignes de programmes comme un dernier paragraphe d'un processus de création de feuilles.
    Le programme plantait (fermeture d'excell !!!) toujours apres la première écriture du code, et le debut de création de la seconde page... Et cela, jene sais pourquoi.
    Par contre, en séparant la création des pages de l'écriture du code dans leurs modules propres, tout se passe très bien.
    Si ca peut aider

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    Bonjour

    Par contre, en séparant la création des pages de l'écriture du code dans leurs modules propres, tout se passe très bien.
    Effectivement, le VBA n'aime pas trop la création d'objets, et de code associé, dans une même boucle.

    bonne journée
    michel

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

Discussions similaires

  1. [SP-2007] Création automatique d'une "view"
    Par relhariri dans le forum Développement Sharepoint
    Réponses: 1
    Dernier message: 03/05/2011, 11h27
  2. Réponses: 4
    Dernier message: 09/02/2011, 11h01
  3. [PPT-2003] Création automatique d'une table des matières
    Par raymoundo dans le forum Powerpoint
    Réponses: 8
    Dernier message: 11/05/2010, 11h45
  4. Réponses: 0
    Dernier message: 15/04/2009, 10h36
  5. [MySQL] Création automatique d'une page
    Par chicho dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 28/11/2007, 13h45

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