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 :

[VBA-E]Erreur Automation en faisant du multicasting


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Points : 19
    Points
    19
    Par défaut [VBA-E]Erreur Automation en faisant du multicasting
    Bonjour,
    J'ai créé une classe dans le but de récupérer les évènements d'autres controles sur une feuille. Je travaille en VBA sous Excel.
    La première ligne de la classe est donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public WithEvents TextBox As TextBox
    Lorsque j'instancie la classe, je reçois le message d'erreur suivant:

    "Erreur de compilation: L'objet n'est pas source d'évènements automation"

    L'erreur se produit lorsque j'utilise Dim ou Dim WithEvents.

    Savez-vous comment résoudre ce problème?

  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 144
    Points
    20 144
    Par défaut
    bonjour

    j'espere que les infos ci dessous pourront t'aider (tester avec Excel2002)


    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
    '--------------------------------------
    'dans un module de classe nommé "Classe1"
    '
    Option Explicit
     
    Public WithEvents txtBx As MSForms.TextBox
     
    'exemple pour gerer l'evenement doubleclic sur les objets type TextBox
    'dans la Feuil1
    '(l'objet doir avoir le focus pour que l'evenement soit déclenché)
    Private Sub txtBx_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    'cet exemple affiche le nom de l'objet double cliqué
    MsgBox txtBx.Name
    End Sub
    '--------------------------------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    '--------------------------------------
    'dans un module standard
    Option Explicit
     
    Public Collect As Collection
    '--------------------------------------

    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
    '--------------------------------------
    'à placer au niveau de ThisWorbook pour que la classe soit inialisée lors de
    'l'ouverture du classeur
     
    Option Explicit
     
    Private Sub Workbook_Open()
    Dim Obj As OLEObject
    Dim Cl As Classe1
     
    Set Collect = New Collection
     
    For Each Obj In Feuil1.OLEObjects 'boucle sur les objets de la Feuil1
        If TypeOf Obj.Object Is MSForms.TextBox Then 'verifie s'il s'agit d'un Textbox
        Set Cl = New Classe1
        Set Cl.txtBx = Obj.Object
        Collect.Add Cl
        End If
    Next Obj
     
    End Sub
    '--------------------------------------


    bonne journée
    michel

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    Merci beaucoup pour cette réponse! Cela répond à l'autre question que je n'avais pas posée, comment associer un objet à chaque control de la forme sans avoir à les déclarer explicitement comme variable globale. Je n'avais pas pensé à créer une collection globale pour ne pas perdre les références (je suis d'ailleurs déçu car mon ouvrage de référence, Programming Visual Basic 6.0 de Microsoft Press, semble ignorer cette possibilité). J'utilise une forme au lieu d'une feuille donc j'ai du adapter un peu le code, mais cela marche parfaitement.

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

Discussions similaires

  1. [VBA-E]erreur automation
    Par bernard38 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 02/08/2023, 15h48
  2. [VBA-E] Erreur automation
    Par dotyke dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/01/2007, 14h47
  3. [VBA-Excel] Erreur automation
    Par argv666 dans le forum Macros et VBA Excel
    Réponses: 27
    Dernier message: 18/09/2006, 19h03
  4. [VBA-E]Erreur automation
    Par bernard38 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/04/2006, 09h22
  5. [VBA-E] Erreur automation
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 07/04/2006, 15h02

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