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 :

Affichage de donnée dans txtbox sur click listbox


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
    Coordinator customer support
    Inscrit en
    Octobre 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinator customer support
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 46
    Par défaut Affichage de donnée dans txtbox sur click listbox
    Bonjour,

    Je tente, via une listbox chargée par les données d'une feuille excel ("DATA"), d'afficher les données dans des textbox/optionbutton/combox quand je click sur une ligne de cette listbox.

    J'initialise le remplissage de la listbox4 de cette manière (j'ai repris un code que j'essaye d'adapté au mieux)
    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
    37
    Dim WB As Workbook
    Dim S As Worksheet
    Dim R As Range
    Dim var As Variant
    Dim LigneFin&
    Dim ColonneFin&
     
            '### Où se trouvent les données ? ###
            Set WB = ActiveWorkbook   'dans le classeur actif (à adapter)
            Set S = WB.Sheets("DATA") 'dans la feuille "Data" (à adapter)
            '--- on suppose que les données commencent en A1
            '--- et que toutes les cellules de la colonne A
            '--- ainsi que toutes les cellules de la ligne 1
            '--- sont renseignées
            LigneFin& = S.[A2].End(xlDown).Row          'dernère ligne
            ColonneFin& = S.[A2].End(xlToRight).Column  'dernière colonne
            '--- on affecte la plage de données à une variable Range
            Set R = S.Range(S.Cells(1, 3), S.Cells(LigneFin&, ColonneFin&))
            '--- on monte tout le Range dans un Variant qui va se comporter comme un tableau bidimensionné
            var = R   'toutes les données sont dans le Variant
     
            '### REMARQUE ###
            'Si vous avez des calculs, faites les à partir et dans le Variant
     
            '### ListBox ###
            '--- nombre de colonnes de la ListBox = nombre de colonnes du Variant
     
            With ListBox1
     
                .ColumnCount = UBound(var, 2) ',2 est la dimension des colonnes
                '--- on monte d'un seul coup le variant dans la ListBox
                .ColumnWidths = "70 pt;45 pt;45 pt"
                .List = var
                .ColumnHeads = True
                .RowSource = "A2:C65000"
     
            End With
    À savoir que j'ai 15 colonne avec des titres qui sont reprise par la fonction .ColumnHeads = True dans le listbox4.
    J'ai rencontré un souçis d'affichage que j'ai pu résoudre en affichant uniquement les 3 premères colonnes (seul celles-ci me sont nécessaire pour un aperçu rapide).

    Ma question: Est-il possible d'afficher l'entièreté des données dans les champs textbox/optionbutton/combox en cliquant sur une ligne de cette listbox4?

    J'ai suivis plusieurs post à ce sujet mais je ne parviens pas à l'adapté sur le mien ..

    Voici comment j'encode mes donnée sur la plage excel :

    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
    Sub cmdConfirm_Click()
    Dim Ctrl As Control
    Dim Ctrl1 As Control
     
     Sheets("DATA").Activate
     
      'Positionnement dans la table
      [A65000].End(xlUp).Offset(1, 0).Select
      'Transfert des données formulaire dans BD
      'frame priorité
      ActiveCell.Value = Application.Proper(Me.NumCall)
     
      For Each Ctrl In FramePriorite.Controls
            If Ctrl.Object.Value = True Then
                 ActiveCell.Offset(0, 1).Value = Ctrl.Object.Caption
                Exit For
            End If
        Next Ctrl
      ActiveCell.Offset(0, 2).Value = Me.TextBoxDateProposee
      ActiveCell.Offset(0, 3).Value = "CREE"
      ActiveCell.Offset(0, 4).Value = Me.ActionAgent
      ActiveCell.Offset(0, 5).Value = Me.ComboTypeCall
      ActiveCell.Offset(0, 6).Value = Me.ResaCmde
      ActiveCell.Offset(0, 7).Value = Me.Outbound
      ActiveCell.Offset(0, 8).Value = Me.Article
      ActiveCell.Offset(0, 9).Value = Me.Lot
      ActiveCell.Offset(0, 10).Value = Me.Objet
      ActiveCell.Offset(0, 11).Value = Me.TextBoxDateDuJour
     
    End Sub
    Merci pour le coup de pouce

    Damien

  2. #2
    Membre averti
    Homme Profil pro
    Coordinator customer support
    Inscrit en
    Octobre 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinator customer support
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 46
    Par défaut
    Je parviens à afficher la première donnée de la colonne vers un TxtBox mais pour les suivantes, ça bug ..


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ListBox1_Click()
    Dim i As Long
    For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) = True Then
     
    Me.NumCall.Value = ListBox1.List(i, 0)
    Me.TextBoxDateDuJour.Value = ListBox1.List(i, 2)
     
     End If
    Next
    Il s'agit d'un listbox multi colonne .. c'est sûrement ça qui coince ?

    Damien

  3. #3
    Membre éclairé Avatar de RastaBomboclat
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2014
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 240
    Par défaut
    Bonjour

    Pourrais-tu essayer d'adapter le fichier que Thautheme m'avait envoyé? Le voici dans la discussion #6.

    Bon courage...


    Merci du si c'est bon et du si c'est résolu.

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    dans ta procédure de remplissage du listbox :

    - à la ligne 32, tu dois "cacher" tes colonnes en fixant leur valeur à 0
    par exemple, si tu voulais cacher 2 colonnes après tes 3 premières ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .ColumnWidths = "70 pt;45 pt;45 pt;0;0"
    - à la ligne 35, tu dois bien spécifier l'ensemble des colonnes composant ta source de données (RowSource), là tu n'injectes que les données des colonnes A à C ... le reste ne figure pas dans ton listbox


    concernant la présentation des données d'une ligne sélectionnée, tu parles de contrôles OptionButton et Combobox
    c'est assez surprenant sur des contrôles comme ça :

    - OptionButton : il possède un état "True" et "False", quel type de donnée génère le True ? et quel type de donnée génère le False ?
    - Combobox : il stocke une liste d'éléments, or si tu veux présenter une seule ligne, quel est l'intérêt ?

    si en réalité, ce n'est pas une seule ligne que tu veux mettre dans le combobox, mais plusieurs ... vont se poser les questions :

    - textbox : comment ça se gère ?
    - OptionButton : même question que précédemment.


    sans ces informations, il est impossible de t'aider plus précisément.

  5. #5
    Membre averti
    Homme Profil pro
    Coordinator customer support
    Inscrit en
    Octobre 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinator customer support
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 46
    Par défaut
    Bonjour RastaBomboclat,

    Ton fichier me semble une très bonne base pour mon travail !! Merci, je vais essayer d'adaoter ça.


    Bonjour Joe.levrai,

    - à la ligne 32, tu dois "cacher" tes colonnes en fixant leur valeur à 0
    Ah oui ! C'est déjà un très bon point qui va rendre les choses plus claires.

    - à la ligne 35, tu dois bien spécifier l'ensemble des colonnes composant ta source de données (RowSource)
    Effectivement, c'était une "solution" pour n'afficher que les 3 premières colonnes, je modifie ça.

    - OptionButton : il possède un état "True" et "False", quel type de donnée génère le True ? et quel type de donnée génère le False ?
    - Combobox : il stocke une liste d'éléments, or si tu veux présenter une seule ligne, quel est l'intérêt ?
    En gros, j'encode un suivi avec plusieurs données sléectionnables via des optionbutton et combox box ainsi que des txtbox. Les données doivent s'afficher dans une list box et au click sur une ligne, les données doivent s'afficher sur le forumlaire comme à l'initial.

    L'intérêt de a combobox est de pouvoir sélectionner le type de demande et de pouvoir, lors de la cloture d'u ticket, afficher à nouveau cette donnée pour pouvoir la modifier (comme toutes les données en fait).

    Les données sont encodées via ce formulaire avec un code de ce type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ActiveCell.Offset(0, 2).Value = Me.TextBox
    en me bansant sur une plage de donnée établie de cette manère
    [A65000].End(xlUp).Offset(1, 0).Select
    J'espère être clair, au cas où je peux uploader mon fichier pour mieux visualiser la chose (je n'ai pas de données confidentielles dedans)

    Nom : Capture.JPG
Affichages : 457
Taille : 43,4 Ko Voici le formulaire qui me permet d'encoder ..

    Damien

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    contrairement à l'accoutumé, oui je te propose de présenter une copie de ton fichier, ça va éviter des dizaines de messages je pense... car tu n'expliques toujours pas comment se défini l'optionbutton à activer et on ne voit que le frame de remplissage du formulaire

  7. #7
    Membre averti
    Homme Profil pro
    Coordinator customer support
    Inscrit en
    Octobre 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinator customer support
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 46
    Par défaut
    Cockpit v1.xlsm Voici le fichier.

    Attention, étant novice, ça risque de piquer les yeux

    L'objectif final étant de pouvoir encoder une demande, la modifier, la cloturer tout en gardant un aperçu direct sur les demandes encodées et "en cours" par le biai d'un flitre "CREE" ou "CLOTURE". Le fichier sera utiliser par plusieurs personnes (je pense à envoyer les données vers un autre classeurs afin de préserver les données intactes mais ça sera pour après).
    Je dois encore intégrer une base de donnée client aussi (déjà complète mais par confidentialité je ne l'intègre pas dans ce fichier).

    J'essayerai de répondre au mieux à tes questions

    Damien

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/10/2010, 06h20
  2. [XL-2003] affichage de donnée dans une listbox ou textbox d'un userform
    Par revemane dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/05/2009, 20h13
  3. [VB.NET] affichage de données dans un combobox
    Par lou87 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 22/02/2006, 10h25
  4. Affichage de donnée dans une page
    Par leloup84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 21/02/2006, 17h54
  5. Réponses: 3
    Dernier message: 11/01/2006, 17h44

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