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 :

Comment changer le contenu d'un TextBox / ListBox [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 142
    Par défaut Comment changer le contenu d'un TextBox / ListBox
    Bonjour,
    Je suis actuellement bloqué sur le point suivant, peut-être pourriez-vous orienter mes recherches.
    J'ai une ListBox que j'alimente comme suit
    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
     
    Private Sub UserForm_Activate()
         Dim NumLigne As String
     
         Windows("Pamm's.xls").Activate
         Sheets("Pamms").Select
         NumLigne = 7
     
                    Do While Not IsEmpty(Cells(NumLigne, 28))
                        If Cells(NumLigne, 25) <> "" Then
                             If Cells(NumLigne, 2).Value = "" Then
     
                                 Me.Questions.AddItem Cells(NumLigne, 28).Value
                                 Me.Questions.List(Questions.ListCount - 1, 1) = Cells(NumLigne, 14).Value
                                 Me.Questions.List(Questions.ListCount - 1, 2) = Cells(NumLigne, 1).Value
                                 Me.Questions.List(Questions.ListCount - 1, 3) = Cells(NumLigne, 6).Value & Cells(NumLigne, 7).Value & Cells(NumLigne, 8).Value & Cells(NumLigne, 9).Value
                                 Me.Questions.List(Questions.ListCount - 1, 4) = Cells(NumLigne, 25).Value
     
                           Else:
                                Me.Questions.AddItem Cells(NumLigne, 28).Value
                                Me.Questions.List(Questions.ListCount - 1, 1) = Cells(NumLigne, 14).Value
                                Me.Questions.List(Questions.ListCount - 1, 2) = Cells(NumLigne, 2).Value
                                Me.Questions.List(Questions.ListCount - 1, 3) = Cells(NumLigne, 6).Value & Cells(NumLigne, 7).Value & Cells(NumLigne, 8).Value & Cells(NumLigne, 9).Value
                                Me.Questions.List(Questions.ListCount - 1, 4) = Cells(NumLigne, 25).Value
     
                           End If
     
                        End If
                        NumLigne = NumLigne + 1
     
                    Loop
     
    End Sub
    Je souhaiterais qu'en descendant dans la ListBox, Le contenu de la colonne 4 s'affiche dans un TextBox. Je ne sais pas quelle synthaxe noter dans le Private Sub Questions_Change

    Pouvez-vous m'aider
    Merci par avance

    MichaSarah

  2. #2
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Salut je ne suis pas sur de ce que tu veux faire mais essaye:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'code a placer dans le onchange du listbox
    Textbox1.Text= NomDuListBox.text
    Il faut ajouter un textbox sur ta feuil.

    Est-ce ca que tu souhaite realiser?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 142
    Par défaut
    Bonjour jojo86,
    Le TextBox est bien présent sur mon formulaire. J'utilise déja la synthaxe que tu me propose ,elle fonctionne mais unquement lorsque la ListBox fait référence à une plage de cellules d'un fichier Excel. Je n'arrive pas à la faire fonctionner lorsque j'ajoute des éléments via "Additem" dans la listBox.

    Salutations
    MichaSarah

  4. #4
    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 heu.!!
    bonjour

    regarde dans les propriete de ta list box a quelle collone tu a mis la propriete "text"

    au plaisir
    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

  5. #5
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Peux tu réxpliquer ton probleme? Peux tu Resumer ton code? Je pense que le probleme est minime... Mais réxplique moi stp!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 142
    Par défaut
    Bonjour,
    Mon code est le suivant :

    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
     
    Private Sub UserForm_Activate()
         Dim NumLigne As String
     
         Windows("Pamm's.xls").Activate
         Sheets("Pamms").Select
         NumLigne = 7
     
                    Do While Not IsEmpty(Cells(NumLigne, 28))
                        If Cells(NumLigne, 25) <> "" Then
                             If Cells(NumLigne, 2).Value = "" Then
     
                                 Me.Questions.AddItem Cells(NumLigne, 28).Value
                                 Me.Questions.List(Questions.ListCount - 1, 1) = Cells(NumLigne, 14).Value
                                 Me.Questions.List(Questions.ListCount - 1, 2) = Cells(NumLigne, 1).Value
                                 Me.Questions.List(Questions.ListCount - 1, 3) = Cells(NumLigne, 6).Value & Cells(NumLigne, 7).Value & Cells(NumLigne, 8).Value & Cells(NumLigne, 9).Value
                                 Me.Questions.List(Questions.ListCount - 1, 4) = Cells(NumLigne, 25).Value
     
                           Else:
                                Me.Questions.AddItem Cells(NumLigne, 28).Value
                                Me.Questions.List(Questions.ListCount - 1, 1) = Cells(NumLigne, 14).Value
                                Me.Questions.List(Questions.ListCount - 1, 2) = Cells(NumLigne, 2).Value
                                Me.Questions.List(Questions.ListCount - 1, 3) = Cells(NumLigne, 6).Value & Cells(NumLigne, 7).Value & Cells(NumLigne, 8).Value & Cells(NumLigne, 9).Value
                                Me.Questions.List(Questions.ListCount - 1, 4) = Cells(NumLigne, 25).Value
     
                           End If
     
                        End If
                        NumLigne = NumLigne + 1
     
                    Loop
     
    End Sub
    Je souhaite pouvoir afficher dans un textbox le contenu de la dernière colonne

    Salutations
    MichaSarah

    Bonjour patricktoulon,
    Dans la fenêtre propriété le paramètre Text est vide

    Salutations
    MichaSarah

  7. #7
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    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
    Option Explicit
     
    Private Sub UserForm_Initialize()
    Dim LastLig As Long, i As Long
     
    With Sheets("Pamms")
        LastLig = .Cells(Rows.Count, 28).End(xlUp).Row
        For i = 7 To LastLig
            If .Cells(i, 25) <> "" Then
                Me.Questions.AddItem .Cells(i, 28).Value
                Me.Questions.List(Questions.ListCount - 1, 1) = .Cells(i, 14).Value
                Me.Questions.List(Questions.ListCount - 1, 2) = IIf(.Cells(i, 2).Value = "", .Cells(i, 1).Value, .Cells(i, 2).Value)
                Me.Questions.List(Questions.ListCount - 1, 3) = .Cells(i, 6).Value & .Cells(i, 7).Value & .Cells(i, 8).Value & .Cells(i, 9).Value
                Me.Questions.List(Questions.ListCount - 1, 4) = .Cells(i, 25).Value
            End If
        Next i
    End With
    End Sub
     
    Private Sub Questions_Change()
    Me.TextBox1 = Me.Questions.List(Questions.ListIndex, 4)
    End Sub

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 142
    Par défaut
    Bonjour mercatog,
    Merci beaucoup celà fonctionne. A moi maintenant d'assimiler la différence entre "Initialize" et "Activate"

    MichaSarah

    Re-bonjour mercatog,
    Je viens comprendre (il me semble) que ce n'est pas l'utilisation de "Initialize" ou "Activate" qui posait problème pour mon cas mais ce que je mettais dans "Change"
    Peux-tu m'expliquer succintement la synthaxe de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.TextBox1 = Me.Questions.List(Questions.ListIndex, 4)
    merci
    MichaSarah

  9. #9
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Rien de mieux que F1
    List, propriété

    Renvoie ou définit la liste des entrées d'un contrôle ListBox ou ComboBox.

    Syntaxe

    object.List( row, column ) [= Variant]

    La syntaxe de la propriété List comprend les éléments suivants :

    Élément Description
    object Objet valide.
    row Nombre entier compris entre zéro et le nombre d'entrée dans la liste moins 1.
    column Nombre entier compris entre zéro et le nombre de colonnes moins 1.
    Variant Facultatif. Contenu de l'entrée spécifiée dans le contrôle ListBox ou ComboBox.

    Valeurs
    La numérotation des lignes et colonnes commence à zéro. C'est-à-dire, le numéro de ligne de la première ligne de la liste est zéro ; le numéro de colonne de la première colonne est zéro. Le numéro de la deuxième ligne ou colonne est 1, et ainsi de suite.

    Remarques

    La propriété List fonctionne avec les propriétés ListCount et ListIndex. Utilisez la propriété List pour accéder à ces éléments. Une liste est un tableau de Variants ; chaque élément de la liste a un numéro de ligne et un numéro de colonne.
    ListIndex, propriété

    Identifie l'élément actuellement sélectionné dans un contrôle ListBox ou ComboBox.

    object.ListIndex [= Variant]

    La syntaxe de la propriété ListIndex comprend les éléments suivants :

    Élément Description
    object Objet valide.
    Variant Facultatif. Élément actuellement sélectionné dans le contrôle


    Remarques

    La propriété ListIndex contient un index de la ligne sélectionnée dans la liste. Les valeurs de la propriété ListIndex sont comprises entre –1 et le nombre total de lignes de la liste moins 1 (c'est-à-dire, ListCount – 1). Lorsqu'aucune ligne n'est sélectionnée, la propriété ListIndex renvoie la valeur –1. Quand l'utilisateur sélectionne une ligne d'un contrôle ListBox ou ComboBox, le système définit la valeur de la propriété ListIndex. La valeur de la propriété ListIndex de la première ligne de la liste est zéro, la valeur de la deuxième liste est 1, et ainsi de suite.

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

Discussions similaires

  1. Comment controler le contenu d'une textBox?
    Par shyx21 dans le forum C#
    Réponses: 13
    Dernier message: 15/01/2008, 20h21
  2. Réponses: 2
    Dernier message: 02/11/2007, 18h12
  3. Comment supprimer le contenu d un textbox lorsqu'on clik dessus
    Par orj30754 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/02/2007, 16h28
  4. Comment changer le style d'une textbox ?
    Par LE NEINDRE dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 24/10/2006, 02h54
  5. Réponses: 1
    Dernier message: 18/05/2006, 11h37

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