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] Modifier les propriétés d'un control par une routine


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [VBA-E] Modifier les propriétés d'un control par une routine
    bonjour à tous et merci de me lire! Je débute en vba, et j'ai une petite question !

    objectif :

    modifier des propriétés d'un control placé sur une form, mais via une subroutine indépendante placée dans un module, et non pas via une private sub d'interruption au clik ou au double clik.


    portion de code :
    "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Btn_Ajouter_Libele_Click()
    .....
    ' refresh la liste des libélés actuels dans la zone de liste
        Dim LastInputRow As Integer
        LastInputRow = Cells(1, 1).End(xlDown).Row
        With Sheets("Libeles").Range("A1")
            LstB_Libele_Actuels.RowSource = "Libeles!A2:A" & Sheets("Libeles").Cells(1, 1).End(xlDown).Row
        End With
    ....
    End Sub
    "

    je souhaiterais créer une routine me permétant de modifier le contenu de ma listebox ici du nom de "LstB_Libele_Actuels". Celà allègera la lecture de mon code, car j'utilise le meme morceau régulièrement pour récupérer les données de mon fichier xls. Donc au final j'aimerais avoir un morceau de code du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Btn_Ajouter_Libele_Click()
    .....
    ' refresh la liste des libélés actuels dans la zone de liste
        Refresh_LstB_Libele_Actuels( ?que placer comme paramètre?? )
    ....
    End Sub
    "


    j'espère que c'est assez clair .. merci

    math

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Pas compris
    Donne un exemple de ce que tu voudrais voir
    Refresh_LstB_Libele_Actuels( ?que placer comme paramètre?? )
    A+

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    je souhaiterais encapusler cette portion de code dans uen routine pour pouvoir l'utiliser dans mon code. L'idée était d'utiliser une routine ou une fonction pour exécuter cette portion de code .. . mais le control " LstB_Libele_Actuels" doit bien être passé en paramètre dans ma routine... c'est l'objet de ma question

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     refresh la liste des libélés actuels dans la zone de liste
        Dim LastInputRow As Integer
        LastInputRow = Cells(1, 1).End(xlDown).Row
        With Sheets("Libeles").Range("A1")
            LstB_Libele_Actuels.RowSource = "Libeles!A2:A" & Sheets("Libeles").Cells(1, 1).End(xlDown).Row
        End With
    merci !

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Je ne vois toujours pas... mais, si tu veux passer LstB_Libele_Actuels en paramètre, rien ne t'en empêche. Si tu dois récupérer le nom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Controle = ActiveControl.name
    Pour l'encoyer en paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Procédure(Controle)
    que tu le récupères et l'utilises comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sub Traiter(ctr)
         Userform1.controls(ctr).rowSource = ........
    Je ne sais pas si je réponds à ta question
    A+

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Il est parfaitement possible de passer un objet (un contrôle) en paramètre à une routine ou une fonction.
    Pas nécessaire de récupérer son nom.
    Quel est le problème que tu rencontres?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Bien sûr, suffit de ne pas passer par la variable

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Nos réponses ont-elles résolu ton pb ? Si oui, bouton en bas de l'écran

Discussions similaires

  1. Modifier les propriétés d'un champ d'une table
    Par papyxy dans le forum VBScript
    Réponses: 5
    Dernier message: 17/03/2014, 14h54
  2. modifier en vba les propriétés d'un updown d'une feuille excel
    Par AlfredKr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2012, 12h05
  3. Réponses: 9
    Dernier message: 22/04/2011, 14h24
  4. Réponses: 2
    Dernier message: 17/02/2008, 20h33
  5. [VBA-E]modifier les attributs d'un commentaire dans une cellule
    Par Olivier vb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/03/2004, 10h26

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