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 listbox ouverture USF [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Par défaut Remplir listbox ouverture USF
    Bonjour,

    Je cherche désespérément à remplir ma listbox1 à l'ouverture de mon userform.
    Ma listbox1 se remplit avec toutes les données de ma colonne B, en évitant les doublons.
    Le problème est qu'à louverture du Userform je dois cliquer sur un bouton import or je ne veux pas cliquer sur un bouton mais importer automaiquement les données de ma colonnes B dès que le classeur s'ouver et affiche le USF.

    J'espère avoir bien détaillé ma demande.

    Par avance, merci.

  2. #2
    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
    Mets ton code dans l'évènement Initialize de ton usf

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Par défaut
    Merci pour ta réponse.

    J'ai déjà essayé ma ca ne fonctionne pas !

    Voici le code que j'ai dans le commandButton1_Click que j'ai mis dans initialize, mais rien ne se passe.

    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
    ActiveWorkbook.Worksheets("Feuil1").Range("B2:B65536").Sort Key1:=Range("B2"), Order1:=xlAscending, Header:= _
                    xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
                    DataOption1:=xlSortNormal
    i = 2
     
            While ActiveWorkbook.Worksheets("Feuil1").Cells(i, 2) <> ""
                If i = 2 Then
                                  UserForm2.ListBox1.AddItem ActiveWorkbook.Worksheets("Feuil1").Cells(i, 2)
                Else
                                If ActiveWorkbook.Worksheets("Feuil1").Cells(i, 2) <> ActiveWorkbook.Worksheets("Feuil1").Cells(i - 1, 2) Then
                        UserForm2.ListBox1.AddItem ActiveWorkbook.Worksheets("Feuil1").Cells(i, 2)
                    End If
                End If
                i = i + 1
            Wend

  4. #4
    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
    Non, sur ton éditeur vba de userform2
    tu insère ce code
    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
    Private Sub UserForm_Initialize()
    Dim LastLig As Long, i As Long
    Dim MonDico As Object
     
    With ThisWorkbook.Worksheets("Feuil1")
       LastLig = .Cells(.Rows.Count, "B").End(xlUp).Row
       .Range("B1:B" & LastLig).Sort Key1:=.Range("B2"), Order1:=xlAscending, Header:=xlYes
       Set MonDico = CreateObject("scripting.dictionary")
       For i = 2 To LastLig
         If Trim(.Range("B" & i).Value) <> "" Then MonDico(UCase(.Range("B" & i).Value)) = 1
       Next i
       Me.ListBox1.List = MonDico.keys
       Set MonDico = Nothing
    End With
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Par défaut
    Merci Mercatog pour ton aide.

    Alors si je comprends bien je mets dans le code VBA du USF2 le bout de code que tu m'as mis.
    Pour dire vrai je le mettais dans un module du classeur et non dans le code USF.

    Par contre quand je fais cela, dans un module j'ai mis

    Afin que le USF s'ouvre à l'ouverture du classeur, mais j'ai une erreur 9.

    Peut-être que je ne le mets pas au bon endroit !

    Merci.

  6. #6
    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
    Ton erreur vient de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ThisWorkbook.Worksheets("Feuil1")
    Mets à la place de Feuil1, le nom réel de ta feuille de données

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

Discussions similaires

  1. Remplir Listbox au démarrage
    Par Petit Ecolier dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/08/2007, 09h24
  2. remplir listbox bdd
    Par lesafir dans le forum ASP.NET
    Réponses: 8
    Dernier message: 21/06/2007, 17h23
  3. Remplir listbox sur base d'une autre listbox
    Par jujujulien dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/05/2007, 08h46
  4. [C# Threads] Remplir listbox
    Par PoZZyX dans le forum Windows Forms
    Réponses: 9
    Dernier message: 09/04/2007, 16h00
  5. pb remplir Listbox dynamique
    Par maniolo dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 10/08/2006, 18h50

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