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] userform dynamique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 4
    Par défaut [resolu] [VBA] userform dynamique
    Bonjour,

    Je suis sur un projet dans lequel je cree dynamiquement des controls dans mon userform. Le probleme c est que je n arrive pas a associer des fonctions a ses controls.

    Lors de la definition de mon control, j aimerais pouvoir definir quelle fonction executer si on clique sur le control: une fonction du genre onclick qui appelle une macro.

    voila par exemple un label qui est cree.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Set myLabel = mainscreen.Controls.add("forms.Label.1")
            With myLabel
                .name = "templabelC" & i - 1 & "L" & j
                .Object.Caption = labeltext
                .left = 54 + 60 * j - 60
                .Top = 20 * i + 51
                .Width = 70
                .Height = 100
            End With
    Merci d' avance pour votre aide

  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
    Par défaut
    Regarde ici, je pense que tu y trouveras ton bonheur

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 4
    Par défaut
    J ai regarde le lien que tu m as donne, ca permet juste de changer dynamiquement des controls qui sont deja bien defini dans ton userform. Moi je cree dynamiquement les controls dans le programme et je voudrais pouvoir y associer une fonction quand on clique dessus.

    Que ce soit des label ou button, j arrive pas a affecter une action dessus

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonsoir,

    Dans un module de classe nommé DynButton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public WithEvents Button As MSForms.CommandButton
     
    Private Sub Button_Click()
        MsgBox Button.Name
    End Sub
    Dans le formulaire:

    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
    Dim DynButtons As Collection
     
    Private Sub UserForm_Initialize()
        Dim i As Integer, NewButton As MSForms.CommandButton
        'Crée une nouvelle collection
        Set DynButtons = New Collection
        For i = 1 To 3
            'Ajoute un bouton sur le formulaire
            Set NewButton = Me.Controls.Add("Forms.CommandButton.1")
            'Positionne le controle
            NewButton.Top = (i - 1) * 30
            'Ajoute une instance du module à la collection
            DynButtons.Add New DynButton
            'Connecte l'instance du module au bouton du formulaire
            Set DynButtons(i).Button = NewButton
        Next
    End Sub
    Le même principe est valable pour des Labels, Checkbox etc.

    Cordialement,

    Tirex28/

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 4
    Par défaut
    C est exactement ce que je recherchais et ca marche tres bien, merci beaucoup.

  6. #6
    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 : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Tu n'aurais pas oublié de cliquer sur , par hasard?
    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!

Discussions similaires

  1. [XL-2003] Excel/VBA - Créer un "UserForm" dynamique
    Par hevy75 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/09/2010, 17h24
  2. [VBA] Ajouter dynamiquement une référence
    Par jpharand dans le forum VBA Access
    Réponses: 23
    Dernier message: 16/04/2010, 23h28
  3. [XL-2003] VBA-Userforms -Affectation d'une valeur à un champ nommé dynamiquement
    Par jipepe dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/05/2009, 22h22
  4. [VBA-E]probleme VBA USERFORM
    Par alexandre707 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/03/2007, 18h17
  5. [VBA]Userform mobile dans une feuille excel
    Par fikren dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/10/2005, 15h45

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