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 :

[Débutant] VBA Excel : Liste déroulante


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 89
    Points : 59
    Points
    59
    Par défaut [Débutant] VBA Excel : Liste déroulante
    Bonjour à tous,
    j'aimerai en fait dans une cellule excel mettre une liste déroulante contenant des données d'une table de ma bd access.
    Mais je ne sais déjà si c'est possible, et si oui, comment faire.
    Pouvez vous m'aider? D'avance, merci à tous.[/quote]

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Bonjour,
    Si c'est une Liste déroulante intrduite avec Données / Liste, celà n'est pas possible.

    jpleroisse

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Re,
    J'ai répondu un peu vite, si les données d'un champ de ta Base de Données sont importées dans une colonne, alors là c'est possible.

    jpleroisse

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tiens voila un peu de code à adapter :

    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
    Sub MajListe()
    Dim wrkJet As Workspace
    Dim dbsStat As Database
    Dim req As DAO.Recordset
    Dim cb As ComboBox
    Const stFBD = "d:\Mabase.mdb" 'Fichier base de données
    Set cb = Worksheets("Feuil2").OLEObjects("ComboBox1").Object
    cb.Clear
     
    Const MaReq = "SELECT Lib FROM MATable" ' Requête à adapter selon base de donnee
    ' Crée un objet Workspace Microsoft Jet.
      Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
       ' Ouvre un objet Database de la base de données
     Set dbsStat = wrkJet.OpenDatabase(stFBD, False)
     
    Set req = dbsStat.OpenRecordset(MaReq)
    While Not req.EOF
        cb.AddItem req!Lib ' A Adapter ...
        req.MoveNext
    Wend
     dbsStat.Close
     Set req = Nothing
     Set dbsStat = Nothing
     Set wrh = Nothing
    End Sub
    Const stFBD = "d:\Mabase.mdb" 'Fichier base de données => defini la base de données access utilisée

    Set cb = Worksheets("Feuil2").OLEObjects("ComboBox1").Object ==> ComboBox .. à remplir

    Const MaReq = "SELECT Lib FROM MATable" ' Requête à adapter selon => requête SQL , à appliquer...


    cb.AddItem req!Lib ' A Adapter ... => champ à rajouter dans combo




  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Bonjour,
    Si ta combobox a été placée avec la barre d'outils commandes.
    Perso j'utilise cette méthode.

    Dans Références, tu coches Microsoft DAO 3.51 Object Library et
    Microsoft ActiveX Data Objects 2.0 Library.
    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
     
    Sub ImporterDonnées()
    Dim adoConnection As ADODB.Connection
    Dim adoRecordSet As ADODB.Recordset
    Set adoConnection = New ADODB.Connection
    Set adoRecordSet = New ADODB.Recordset
    Dim ConnectionString As String
    ConnectionString = "Provider = Microsoft.Jet.OLEDB.3.51;" & " Data Source = C:\Program Files\Microsoft Visual Studio\vb98\Biblio.mdb"
    adoConnection.Open ConnectionString
    adoRecordSet.Open "Publishers", adoConnection
     
    Do Until adoRecordSet.EOF
     
    Worksheets("Feuil1").ComboBox1.AddItem adoRecordSet!Name  
    Worksheets("Feuil1").ComboBox1.ListIndex = 0
     
    adoRecordSet.MoveNext
    Loop
     
    adoRecordSet.Close
    adoConnection.Close
    jpleroisse

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 89
    Points : 59
    Points
    59
    Par défaut
    Merci beaucoup à tous.
    Seulement, je crois que je me suis mal exprimé, désolé.
    En fait, dans excel, on a possibilité de mettre une liste de choix, par l'intermédiaire de ce chemin "Données", "Validation", puis dans les options "Autoriser", si on selectionne liste, alors ca crée une liste déroulante dans une cellule. Seulement on nous demande la source. Et ma source, en l'occurence, j'aimerai que ca soit un champ de ma base de données. Mais je ne sais pas comment le faire.
    D'avance, merci pour votre patience et votre aide!

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Bonjour,
    Je pense t'avoir donné la réponse , tu dois importer le champ de ta BD dans une colonne et ensuite placer cette colonne en paramètres à la liste déroulante.

    jpleroisse

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Re,
    Pour compléter ma réponse, il n'est pas intéressant d'utiliser une liste déroulante crée avec données/Validation etc..., car tu as les donnée obligatoirement sur ta feuille. Utilise plutôt une liste déroulante placée avec la barre d'outils Commandes et le code que je t'ai mis plus haut.

    jpleroisse

Discussions similaires

  1. [VBA][Excel] liste déroulante validation
    Par nicolas_151 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/08/2008, 14h30
  2. [VBA-Excel] - Liste déroulante
    Par a.dequidt dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/09/2007, 10h44
  3. [VBA-EXCEL] Liste déroulante
    Par cd090580 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/07/2006, 08h34
  4. Réponses: 4
    Dernier message: 09/05/2006, 11h48
  5. [VBA-E] liste déroulante
    Par mulanzia2003 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/02/2006, 14h19

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