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 :

Remplir une Combo avec données venant de 2 colonnes


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut Remplir une Combo avec données venant de 2 colonnes
    Bonjour,

    J'ai une Combo (en Vba sous Excel) qui s'appelle Cb1 que souhaite alimenter avec des données venant de la Feuille "Adhé" et des colonnes "C" et "E".
    Je veux éviter d'avoir 2 colonnes dans ma Combo.

    Comment puis-je faire ?

    Merci par avance pour votre aide

  2. #2
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonjour,

    si tu peux concaténer tes données, voici une solution :

    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
    Option Explicit
     
    Private Sub UserForm_Initialize()
    Dim tab1 As Variant
    Dim tab2 As Variant
    Dim tab3() As Variant
    Dim Plage As Range
    Dim i As Long
     
    'remplissage des tableaux
    Set Plage = Sheets(1).Range("C1:C5")
    tab1 = Plage
    Set Plage = Sheets(1).Range("E1:E5")
    tab2 = Plage
     
    'concaténation des données
    ReDim tab3(1 To UBound(tab1))
    For i = LBound(tab1) To UBound(tab1)
        tab3(i) = tab1(i, 1) & " " & tab2(i, 1)
    Next i
     
    'remplissage du Cb
    ComboBox1.List = tab3
    'Affichage du 1er élément
    ComboBox1.ListIndex = 0
    End Sub
    cordialement

  3. #3
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Bonjour,

    J'ai donc mis en place le code que tu m'as donné. Cependant un message d'erreur apparâit "Erreur 70" - Permission refusée"
    Que ce passe t'il ?
    Merci pour votre éclairage

    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
     
    Private Sub UserForm_Initialize()
    Dim Tab1 As Variant
    Dim Tab2 As Variant
    Dim Tab3() As Variant
    Dim Plage As Range
    Dim I As Long
     
    'remplissage des tableaux
    Set Plage = Sheets("Adhé").Range("C1:C5")
    Tab1 = Plage
    Set Plage = Sheets("Adhé").Range("D1:D5")
    Tab2 = Plage
     
    'concaténation des données
    ReDim Tab3(1 To UBound(Tab1))
        For I = LBound(Tab1) To UBound(Tab1)
            Tab3(I) = Tab1(I, 1) & " " & Tab2(I, 1)
        Next I
     
    'remplissage du Combo
    Me.Cb1.List = Tab3
     
    'affichage du 1er élément
    Me.Cb1.ListIndex = 0
     
    End Sub

  4. #4
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonjour,

    As tu regardé dans l'aide.
    Permission refusée (erreur 70)


    Vous avez tenté d'écrire sur un disque protégé en écriture ou d'accéder à un fichier verrouillé. Causes et solutions de cette erreur :

    • Vous avez tenté d'ouvrir un fichier protégé en écriture pour un accès séquentiel Output ou Append. Ouvrez le fichier pour un accès Input ou changez l'attribut de protection en écriture du fichier.
    • Vous avez tenté d'ouvrir un fichier sur un disque protégé en écriture pour un accès séquentiel Output ou Append. Retirez la protection en écriture du disque ou ouvrez le fichier pour un accès Input.
    • Vous avez tenté d'écrire dans un fichier qu'un autre processus a verrouillé. Attendez que l'autre processus libère le fichier pour l'ouvrir.
    • Vous avez tenté d'accéder à la base de registre, mais vos permissions utilisateur n'incluent pas ce type d'accès. Sur des systèmes Microsoft Windows 32 bits, un utilisateur doit avoir les permissions appropriées pour accéder à la base de registres du système. Changez vos permissions ou demandez à l'administrateur système de le faire.

    Pour plus d'informations, sélectionnez l'élément en question et appuyez sur F1 (sous Windows) ou AIDE (sur Macintosh).

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Bonjour,

    C'est ce que je viens de faire et j'ai trouvé mon problème,
    dans RowSource de la colonne proriétés, j'avais laissé quelque chose.
    Je vous prie de m'excuser pour cette précipitation.

    Par contre, j'ai un autre soucis :

    Normalement lorsque je sélection un agent dans Cb1, son code d'agent (qui se trouve dans la colonne B de la feuille "Adhé" devrait apparaître dans un TextBox (Lst1) mais rien ne se passe.
    J'ai essayé par la méthode habituelle, mais il ne trouve pas les données puisqu'elles viennent de 2 colonnes et moi je ne sais faire la recherche qu'à partir d'une seule.

    Que faut-il que je rajoute à mon code pour que cela fonction ?
    Merci

  6. #6
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    re

    Tu peux ajouter un évènement Change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Cb1_Change()
    Lst1.Text = Sheets("Adhé").Range("B" & Cb1.ListIndex + 1)
    End Sub
    Lst1 n'est pas très parlant pour un TextBox, me fait penser à un ListBox

    @+

  7. #7
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Oui c'est certain pour List1 mais cela me permet de savoir que c'est la première liste du tableau. Mais c'est bien un TextBox
    Je met ton code en place et je te dis quoi.

    Super ça marche.

    Merci encore pour ta précieuse aide

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

Discussions similaires

  1. Remplir une base de données avec un combo
    Par slimabdi dans le forum NetBeans
    Réponses: 13
    Dernier message: 16/07/2014, 12h50
  2. remplir une combo suite à un évènement ajax avec dwr
    Par coco-sup dans le forum Struts 1
    Réponses: 6
    Dernier message: 23/01/2013, 14h48
  3. Remplir une combo avec fichier ini
    Par PrincessKC dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/03/2010, 22h53
  4. Réponses: 11
    Dernier message: 14/03/2007, 10h13
  5. [VBA-A]Remplir une textbox avec des données de tables.
    Par cuicui08 dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/03/2006, 10h28

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