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 :

affecter des valeurs à chaque élément d'une listbox [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 15
    Par défaut affecter des valeurs à chaque élément d'une listbox
    Bonjour à tous,
    Je débute en visual basic sous Excel.
    J'aurai aimé savoir comment faire pour affecter par exemple trois valeurs à chaque élément d'une listbox.
    Je m'explique : à partir d'une feuille excel, je vais chercher trois pays et je les mets dans une listbox. Pour chacun de ces pays (dès que je clique sur l'un d'eux), je voudrais leur affecter trois variables par l'intermédiaire des textbox ou autre fonction que je pourrai réutiliser par la suite dans une feuille excel.
    Faut-il créer d'autre Userform?

    Merci par avance de votre aide.

  2. #2
    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

    il manque un peu plus de precision dans ta question

    cela dit puisque tu va vchercher tes items dans une feuille tu peux tres bien utiliser le "offset des celules
    et inscrire les autres variables dans les celules adjacentes

    en l'etat je vois pas tres bien quoi d'autre


    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

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 15
    Par défaut
    bonjour patricktoulon,

    Ta réponse ne répond pas à ma question. Je vais essayer d'être plus clair.
    J'essaye via VBA de remettre en forme des résultats de simulation.
    La feuille excel de départ contient trois pays avec des performances pour chacun d'eux. Je présente donc via un userform (sorte d'IHM) à l'utilisateur les données incluses dans la feuille excel de départ, en mettant les pays dans une listbox et je voudrai que l'utilisateur rentre trois variables à la main (de façon interactive) pour chacun des trois pays.Sélection d'un pays dans la listbox et ouverture d'une fenètre contenant trois textbox à remplir par l'utilisateur + sauvegarde de ces trois valeurs pour chaque pays pour une réutilisation ultérieure dans la mise en forme finale des performances.
    J'espère avoir ete plus clair dans ma demande.

    Merci de votre aide.

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    Peut-être que je n'ai rien compris non plus mais, une idée dans le code de l'USF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub ListBox1_Click()
    TextBox1.Visible = True
    TextBox2.Visible = True
    TextBox3.Visible = True
    End Sub
     
    Private Sub UserForm_Initialize()
    TextBox1.Visible = False
    TextBox2.Visible = False
    TextBox3.Visible = False
    End Sub

    ensuite par macro, tu donnes les valeurs de tes textbox à des cellules adjacentes au pays choisi et tu remets à False la propriété "Visible" des textbox
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 15
    Par défaut
    Je pense qu'une vue du userform s'impose (voir fichier ci joint)
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Je reprends ma proposition dans laquelle j'ai mis le code pour une listbox mais c'est pareil pour un combobox; admettons que tu crées un autre USF nommmé Userform2, avec trois textbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ListBox1_Click()
    load userform2
    userform2.show
    End Sub
    A ce stade, tes textbox seront vides, ensuite, suite aux saisies dans ceux-ci, tu mettras en relation la valeur de ton combobox, avec une macro dans un bouton, dans un évènement ou autre.
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Par défaut Userform
    Bonjour,

    Voici le genre de code que l'on peut appeler pour afficher une userform contenant une combo et 3 zones de texte.

    Dans la feuille excel, on a les 3 pays en A2,A3,A4

    Les colonnes B,C et D mémoriseront les valeurs saisies pour chaque pays.

    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
    Private Sub ComboBoxPays_Change()
       TextBoxValeur1.Text = Worksheets("Pays").Range("B" & ComboBoxPays.ListIndex + 2).Value
       TextBoxValeur2.Text = Worksheets("Pays").Range("C" & ComboBoxPays.ListIndex + 2).Value
       TextBoxValeur3.Text = Worksheets("Pays").Range("D" & ComboBoxPays.ListIndex + 2).Value
    End Sub
     
    Private Sub CommandButtonFermer_Click()
       Unload Me
    End Sub
     
    Private Sub CommandButtonValider_Click()
       If ComboBoxPays.ListIndex > 0 Then
           Worksheets("Pays").Range("B" & ComboBoxPays.ListIndex + 2).Value = TextBoxValeur1.Text
           Worksheets("Pays").Range("C" & ComboBoxPays.ListIndex + 2).Value = TextBoxValeur2.Text
           Worksheets("Pays").Range("D" & ComboBoxPays.ListIndex + 2).Value = TextBoxValeur3.Text
       End If
    End Sub
     
    Private Sub UserForm_Activate()
       Dim ligne As Integer
       ligne = 2
       Do
          ComboBoxPays.AddItem Worksheets("Pays").Range("A" & ligne).Value
          ligne = ligne + 1
       Loop Until Worksheets("Pays").Range("A" & ligne).Value = ""
    End Sub

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

Discussions similaires

  1. Gestion de l'affichage des éléments d'une ListBox
    Par Tod_sd dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 15/05/2009, 11h46
  2. Réponses: 3
    Dernier message: 25/01/2009, 17h32
  3. Réponses: 2
    Dernier message: 26/07/2006, 12h46
  4. Réponses: 2
    Dernier message: 17/05/2006, 21h35
  5. [VB.NET] Enregistrement des éléments d'une listBox
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 9
    Dernier message: 18/05/2004, 14h48

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