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 :

Objets "module de classe" passé en paramètre de fonction


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2010
    Messages : 116
    Points : 98
    Points
    98
    Par défaut Objets "module de classe" passé en paramètre de fonction
    Bonjour,

    J'obtiens une erreur '438'.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub DoSmthg()
     
    Dim erreurs as Logs
    ...
    DisplayLogs (erreurs) 'Plante ici..
     
    End Sub
     
    Sub DisplayLogs(l as Logs)
    End Sub
    Je souhaite faire une collection "Logs" d'objets "Log" afin d'afficher a la fin de l'exécution l'ensemble des problèmes rencontrés.

    Merci de votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 84
    Points : 90
    Points
    90
    Par défaut
    je connais pas "Logs" mais... voir ceci
    http://www.developpez.net/forums/d49...log-vba-excel/

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2010
    Messages : 116
    Points : 98
    Points
    98
    Par défaut
    Logs est un objet que j'ai implémenté moi même.
    On peut très bien le remplacer par une collection Erreurs qui contient des Erreur (Logs -> Log) Merci

  4. #4
    Invité
    Invité(e)
    Par défaut Bonjour, test ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim erreurs as New Logs

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2010
    Messages : 116
    Points : 98
    Points
    98
    Par défaut
    Merci pour ta réponse, mais j'avais essayé de l'instancié avec un :
    Rien à faire..

    Il doit y avoir un lien entre le passage d'une collection perso et les params d'une procédure..

  6. #6
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Un tout petit exemple.
    Dans un module standard :
    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
    33
    34
     
    Dim erreurs As New Logs
     
    Sub DoSmthg()
     
        'affecte une valeur à la propriété "Erreur"
        erreurs.NumErreur = 2
     
        'affecte une valeur à la propriété "Nom"
        erreurs.Nom = "Vilaine erreur"
     
        'récupère cette valeur
        MsgBox DisplayLogs(1)
     
        'récupère cette valeur
        MsgBox DisplayLogs(2)
     
    End Sub
     
    Function DisplayLogs(ValErreur As Integer) As Variant
     
        Select Case ValErreur
     
            Case 1
     
                DisplayLogs = erreurs.NumErreur
     
            Case 2
     
                DisplayLogs = erreurs.Nom
     
        End Select
     
    End Function
    Dans un module de classe nommé "Logs" :
    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
     
    Private mNumErreur As Long
    Private mNomErreur As String
     
    Property Get NumErreur() As Long
     
        NumErreur = mNumErreur
     
    End Property
     
    Property Let NumErreur(Err As Long)
     
        mNumErreur = Err
     
    End Property
     
    Property Get Nom() As String
     
        Nom = mNomErreur
     
    End Property
     
    Property Let Nom(NomErr As String)
     
        mNomErreur = NomErr
     
    End Property
    Hervé.

    Oups,

    Désolé Robert, pas rafraîchi :o(

    Hervé.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DisplayLogs (erreurs) 'Plante ici..
    Quand tu n’attends pas de réponse pas de ()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DisplayLogs erreurs 'Plante ici..

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2010
    Messages : 116
    Points : 98
    Points
    98
    Par défaut
    Bonjour Theze,

    merci pour ta réponse mais il s'agit d'une collection donc c'est encore différent.

    La solution a été apportée par rdurupt. Merci à lui je marque le sujet en Résolu.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/04/2011, 15h41
  2. Pb ajout objet dans module de classe
    Par steph6499 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 06/02/2011, 17h55
  3. Réponses: 11
    Dernier message: 01/02/2011, 15h20
  4. Réponses: 13
    Dernier message: 21/03/2009, 20h49
  5. Nom d'une variable passée en paramètre à une fonction
    Par cata2 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 07/09/2007, 09h17

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