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 :

Passage paramètres


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 91
    Par défaut Passage paramètres
    Bonjour,

    je souhaiterais en fait savoir si on peut passer en paramètres d'une procédure un label ou pas ? Si oui comment faire ?

    J'ai tenté comme ça mais ça me génère une erreur "Type incompatible".

    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
     
    Sub Active_Onglet(NumPage As Integer, NomOnglet As Label, NomOngletPrec As Label)
     
    '''Sub Active_Onglet(NumPage As Integer, strOnglet As String, strNomOngletPrec As String)
    '''    Dim NomOnglet As Label
    '''    Dim NomOngletPrec As Label
    '''
    '''    NomOnglet.Name = strOnglet
    '''    NomOngletPrec.Name = strNomOngletPrec
     
        If MultiPage1.Pages(NumPage).Enabled = True Then
            MultiPage1.Value = 0
            NomOnglet.ForeColor = &HFFFFFF
     
            If MultiPage1.Pages(NumPage + 1).Enabled = True Then
                NomOngletPrec.ForeColor = &H80000015
            Else
                NomOngletPrec.ForeColor = &H8000000B
            End If
        End If
    End Sub
    et voici l'appel de la procedure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub lblReplyDirect_Click()
        'Recup_Val_Info
            Active_Onglet 0, "lblReplyDirect", "lblInformation"
     
    End Sub
    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Par défaut
    Bonjour,

    je ne suis pas expert en VBA mais je pense avoir une idée sur l'origine de ton problème, j'espère que ça te donnera matière à réfléchir.

    Dans tes déclarations pour ta procédure Active_Onglet tu as en paramètre un entier et 2 labels. Puis quand tu appelles cette procédure, tes paramètres sont un entier (jusque là tout va bien) et deux string !! Ca ne peut pas coller... Un label est de type Form. C'est un objet. Alors que tu appelles avec des chaines de caractères. Je pense que ton problème vient de là.

    Cordialement,

    Lyonel

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 91
    Par défaut
    bonjour,

    hum oui je pense que ça viendrais de la mais le problème serait comment passer ce paramètre label lors de l'appel à la procédure ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Active_Onglet 0, frmSaisie.lblReplyDirect.Name, frmSaisie.lblInformation.Name
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Active_Onglet 0, frmSaisie.lblReplyDirect, frmSaisie.lblInformation
    ne fonctionne pas car donne la même erreur.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Par défaut
    Ca peut paraite stupide comme question mais pourquoi cherches tu à passer des lables en paramètres lors de l'appel de ta procédure ?

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 91
    Par défaut
    Parce que je dois le faire plusieurs fois (sur autant d'onglet qu'aura le contrôle multipage) donc éviter de reproduire le même code plusieurs fois juste en changeant le nom du label.
    Je concède que ça peut paraitre inutile, voir stupide , de chercher absolument a faire ça ...

    Enfin bon je vais peut être l'écrire autant de fois qu'il y aura de pages ... mais si quelqu'un a une idée ça m'intéresse aussi.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour,

    Crée un userform1 + 1 label1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Function label(lab As Object)
    label = lab.Caption
    MsgBox label
    End Function
     
    Sub essais()
    Dim d
    d = label(UserForm1.Label1)
    End Sub

Discussions similaires

  1. [ Struts ] [ Jsp ] [ Javascript ] Passage paramètre
    Par bouchette63 dans le forum Struts 1
    Réponses: 7
    Dernier message: 23/05/2006, 14h04
  2. Exécution d'un prog avec passage paramètres
    Par licorne dans le forum C
    Réponses: 3
    Dernier message: 04/05/2006, 13h05
  3. [SQLSERVER]Pb passage paramètre procédure stockée
    Par galinijay dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/08/2005, 11h59
  4. [JSP] Problème passage paramètre
    Par besco dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 13/09/2004, 10h15
  5. Fenêtre enfant MDI : passage paramètre à la création
    Par Orangina dans le forum C++Builder
    Réponses: 3
    Dernier message: 21/07/2004, 11h55

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