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 :

Remplissage d'une comboBox


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 22
    Points
    22
    Par défaut Remplissage d'une comboBox
    Salut à tous

    Je viens vous demander de l'aide pour remplir ma comboxBox car j'ai trouvé des sources sur le net mais ca colle pas avec mon truc et en plus je comprend pas le code et le copier coller ca m'interesse moyen.

    Voilà mon problème, j'ai une feuille excel avec des colonnes nom et prénom respectivement en B et C.
    Dans un userform je voudrais pouvoir afficher nom+prénom de tous mes enregistrements dans une liste déroulante sachant que je n'ai pas un nombre connu d'enregistrement, donc je peux pas faire b1:b20 par exemple

    J'ai trouvé ce code sur le net.

    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
    Private Sub UserForm_Initialize()
     
    Dim i As Integer
     
    With ComboBox1
        .Clear
        .ColumnCount = 2
        .ColumnWidths = "50;0"
    End With
     
    With Sheets("feuil2")
        For i = 2 To .Range("a65536").End(xlUp).Row
            ComboBox1.AddItem
            ComboBox1.List(ComboBox1.ListCount - 1, 0) = .Cells(i, 1) & " " & .Cells(i, 2)
            ComboBox1.List(ComboBox1.ListCount - 1, 1) = i
        Next i
    End With
    End Sub

    la première partie ca va c'est pour créer deux colonne dans ma liste, ca je comprend mais après je pige rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 2 To .Range("a65536").End(xlUp).Row
    Ca je pense que c'est pour se placer de la ligne 2 jusqu'à la fin mais le .End(xlUp).Row je le pige pas :S

    et puis alors les trois lignes qui suivent c'est pareil entre les ComboBox.List et ListCount je suis perdu perdu.

    Désolé, je sais que ca fait un peu "bateau" de vous demander ca mais je préfère comprendre et adapter à ma situation plutot que de faire copier coller bêtement.


    D'avance merci pour votre aide

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour


    Ta procédure commentée:

    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
    Private Sub UserForm_Initialize()
     
    Dim i As Integer
     
    With ComboBox1
        'Efface le contenu du combobox: n'est pas nécessaire ici car tu es dans
        'l'évènement initialize
        .Clear
        'définit le nombre de colonnes du ComboBox
        .ColumnCount = 2
        'définit la taille des colonnes
        '0 signifie que la deuxième colonne sera masquée 
        .ColumnWidths = "50;0"
    End With
     
    With Sheets("Feuil2")
        'Boucle sur les cellules de la colonne A dans la Feuil2
        'à partir de la deuxieme ligne jusqu'a la derniere cellule
        'non vide.
        For i = 2 To .Range("A65536").End(xlUp).Row
            'Ajoute un élément dans la ListBox.
            'peut aussi s'écrire directement ComboBox1.AddItem .Cells(i, 1) & " " & .Cells(i, 2)
            ComboBox1.AddItem
            'Inscrit les données des colonne A et B dans la premiere colonne du ComboBox       
            'syntaxe: ComboBox1.List(Numero ligne, numero colonne)
            '0= index premiere ligne et index premiere colonne
            'ComboBox1.List(ComboBox1.ListCount - 1, 0) permet donc de localiser la derniere
            'ligne ajoutée.
            ComboBox1.List(ComboBox1.ListCount - 1, 0) = .Cells(i, 1) & " " & .Cells(i, 2)
            'alimente la deuxieme colonne (inscrit le numéro de ligne)
            ComboBox1.List(ComboBox1.ListCount - 1, 1) = i
        Next i
    End With
    End Sub


    http://silkyroad.developpez.com/VBA/ControlesUserForm/



    bonne journée
    michel

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Merci beaucoup pour ta réponse, j'ai pu adapater ca à ma facon et du coup ca marche

    Bonnes fêtes

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

Discussions similaires

  1. Aide sur remplissage d'une combobox
    Par timo.net dans le forum ADO.NET
    Réponses: 0
    Dernier message: 06/12/2012, 22h43
  2. Remplissage d'une ComboBox
    Par khadi8 dans le forum Composants
    Réponses: 0
    Dernier message: 26/04/2012, 13h29
  3. Remplissage depuis une Combobox/Bookmark
    Par mafooley dans le forum VBA Word
    Réponses: 3
    Dernier message: 18/08/2009, 14h52
  4. Remplissage d'une combobox
    Par Tiresia dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/07/2007, 10h13
  5. Réponses: 3
    Dernier message: 14/06/2006, 16h36

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