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 :

Creer un tableau d ecriture dynamique dans un userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Par défaut Creer un tableau d ecriture dynamique dans un userform
    Bonjour a tous,

    J aurai besoin de passer en ecriture dans un userform, c est a dire que je voudrais pouvoir ecrire un texte dans une espece de listbox. Est ce possible ? Ou existe t il une solution alternative comme generer un tableau de Textbox dynamique ?

    Merci pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    On n'écrit pas dans un listbox, mais on peut le faire dans un textbox en modifiant éventiuellement ses propriétés MultiLine à True et EnterKeyBehavior à True.
    Ce qui permet d'utiliser la touche Enter pour sauter à la ligne.

    Pour la gestion des textbox, tu peux passer par une classe.
    Regarde dans les tutos; il y a de bons exemples.

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Par défaut
    tu as un lien ?

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Crée un nouveau projet

    Insère un module, un Userform et un module de classe

    Dans le module "Standard", tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Coll As Collection
    Dans le module de classe (nommé clsBouton), tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public WithEvents Bouton As MSForms.CommandButton
     
    Private Sub Bouton_Click()
        MsgBox Bouton.Name
    End Sub
    Dans le Userform, tu mets
    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
    35
    36
    Private Sub UserForm_Initialize()
        PlacerBoutons
    End Sub
     
    Sub PlacerBoutons()
        Dim I As Long, J As Long, Idx As Long
        Dim Gauche As Long, Haut As Long
        Dim Obj As Control
        Dim Cl As clsBouton
     
        Set Coll = New Collection
     
        Gauche = 18
        Haut = 36
     
        For I = 0 To 5
            For J = 0 To 6
                Idx = Idx + 1
                Set Obj = Me.Controls.Add("forms.CommandButton.1")
                With Obj
                    .Name = "Bouton" & Idx
                    .Left = Gauche + (J * 24)
                    .Top = Haut + (I * 24)
                    .Width = 24
                    .Height = 24
                    .Font.Bold = True
                    .Font.Size = 8
                    .Caption = Idx
                End With
     
                Set Cl = New clsBouton
                Set Cl.Bouton = Obj
                Coll.Add Cl
            Next
        Next
    End Sub
    Lorsque tu affiches le Userform, tu peux cliquer un bouton et voir son nom s'afficher.
    Chacun a le sien...

    Mais comme tu n'as pas vraiment expliqué ce que tu cherches à faire, ce n'est peut-être pas la meilleure avenue dans ton cas...

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Par défaut
    En fait je voudrais créer une liste dynamique de TextBox ...

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Utilise le même code en gérant la quantité et la location de ceux-ci.
    Et tu n'as qu'à changer forms.CommandButton.1 par forms.Textbox.1 dans le Userform ainsi qu'en début de classe
    Et enlève le .Caption = Idx qui ne fait plus de sens pour un Textbox.

  7. #7
    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
    c'est peu commun comme demande
    (ecrire dans une listbox )

    et oui c'est possible
    prends un userform met lui une listbox
    dans le code du module userform met lui ceci:
    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
    Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        If KeyAscii = 13 Then
            If ListBox1.ListIndex = ListBox1.ListCount - 1 Then
                ListBox1.AddItem ""
                ListBox1.ListIndex = ListBox1.ListCount - 1
            Else
                ListBox1.ListIndex = ListBox1.ListIndex + 1
            End If
        Else
            ListBox1.List(ListBox1.ListIndex, 0) = ListBox1.List(ListBox1.ListIndex, 0) & ChrW(KeyAscii)
        End If
    End Sub
    Private Sub UserForm_Activate()
        ListBox1.MatchEntry = 2
        ListBox1.AddItem "": ListBox1.ListIndex = ListBox1.ListCount - 1
    End Sub
    avec la condition " If KeyAscii = 13 Then" on pourrait jumeler avec tab par exemple si multi colonne
    enfin bref c'est encore les idées loufoques a la Patrick
    bien le bonsoir
    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

  8. #8
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Par défaut
    Merci pour ton aide, cependant je n arrive pas a effacer en cas d'erreur. Peux tu maider ?

    @parmi : Peux tu ecrire le code stp j'ai essaye de faire exactement ce que tu as fait ca ne compile pas : "User defined type not defined"

    Merci

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

Discussions similaires

  1. Ecriture dynamique dans une figure
    Par boss89 dans le forum MATLAB
    Réponses: 2
    Dernier message: 09/04/2012, 19h56
  2. Ecriture dynamique dans EXCEL depuis SAS
    Par fafabzh6 dans le forum Macro
    Réponses: 2
    Dernier message: 11/07/2008, 11h42
  3. Ecriture dynamique dans la page actuelle
    Par fantomasmusic dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 19/04/2005, 12h23
  4. [Reflection] Créer un tableau d'objets dynamiquement.
    Par salome dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 25/03/2005, 18h59

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