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 :

utilisation de classes et erreur "objet requis" [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Programmeur amateur
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Programmeur amateur
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Par défaut utilisation de classes et erreur "objet requis"
    Bonjour à tous,

    Je débute dans l'utilisation des classes en VBA. Voici mon problème :

    J'ai une classe "Levier" :
    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
     
    Private mPosition As Boolean
    Property Get Position() As Boolean
        ' Propriété en lecture
        Position = mPosition
    End Property
     
    Property Let Position(Position As Boolean)
        ' Propriété en écriture
        mPosition = Position
    End Property
     
    Function TourneLevier()
        If mPosition = False Then
            mPosition = True
        Else
            mPosition = False
        End If
        TourneLevier = mPosition
    End Function
    J'initialise mon objet levier depuis une Sub de "ThisWorkBook" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim Levier31 As New cLevier
     
        With Levier31
            .Position = True
            .SerrureN = True
            .SerrureR = True
            .Coupon = 21811
        End With
    jusque là tout va bien. Je souhaiterai appeler la fonction "TourneLevier" depuis un Form par l'action d'un bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub LevierC5_Click()
        MsgBox (Levier31.TourneLevier)
    End Sub
    Lorsque je clique sur le bouton en question, j'ai une erreur 404 "objet requis".

    Si je fais appel à ma fonction depuis"ThisWorkBook" cela fonctionne. J'ai l'impression que ça doit venir d'un problème de déclaration quelque part, mais je ne trouve pas.

    Quelqu'un saurait-il m'aider ?

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    ThisWorkBook est lui même une classe tous ce qui ce trouve dedans est privé.

    Il faut déclarer ta variable comme pubic dans un module standard.

    Code module Standard : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Levier31 As  cLevier
    Code module ThisWorkBook : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SET Levier31 = New cLevier
     
        With Levier31
            .Position = True
            .SerrureN = True
            .SerrureR = True
            .Coupon = 21811
        End With

  3. #3
    Membre à l'essai
    Homme Profil pro
    Programmeur amateur
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Programmeur amateur
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Par défaut
    Merci beaucoup, ça fonctionne beaucoup mieux comme ça !

    Je me doutait bien qu'il y avait un souci de déclaration ou de droit, mais je ne savais pas que ThisWorkbook est privé.

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonsoir
    je sais pas mais pour ce genre de toute petite manipe tu pourrais te servir de variable type et supprimer ta classe

    exemple
    lance autant de fois que tu veut la sub test a chaque fois la bascule se fait tout simplement
    tu peux ajouter autant de propriété que tu veux a la place des "x" et les associé dans la sub changeposition
    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
     
    Private Type position
    ouvert As String
    'x
    'x
    'x
    End Type
     
    Dim levier As position
     
     
    Sub test()
    changeposition
    MsgBox levier.ouvert
    End Sub
     
    Sub changeposition()
    If levier.ouvert <>"no" Then levier.ouvert = "no" Else levier.ouvert = "yes"
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. erreur 424, objet requis
    Par Nessie37 dans le forum VBA Access
    Réponses: 8
    Dernier message: 08/01/2009, 12h20
  2. Erreur 424 objet requis
    Par davyvba dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2008, 17h52
  3. erreur "424" Objet requis
    Par fifrelin_70 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 29/10/2007, 19h48
  4. Erreur 424 Objet requis sur connexion à Access
    Par darkian dans le forum ASP
    Réponses: 4
    Dernier message: 21/06/2006, 11h32

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