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 :

[Source][VBA-E] Remplir une zone de liste Excel par une requête Access [Fait]


Sujet :

Macros et VBA Excel

  1. #1
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut [Source][VBA-E] Remplir une zone de liste Excel par une requête Access
    voici un code VBA Excel pour remplir une zone de liste à partir d'une requête sur une table Access :

    il faut ajouter la référence Microsoft DAO
    et avoir un onglet que j'ai appelé "Param" pour recevoir le contenu de la liste.
    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
    Sub FillCombo()
     
    Dim db As DAO.Database
    Dim rec As DAO.Recordset
    Dim curshname as String, nb as Long
     
    curshname = ActiveSheet.Name
    Set db = DAO.OpenDatabase("C:\Temp\MaBase.mdb", False, False)
     
    Set rec = db.OpenRecordset("SELECT unChamp FROM MaTable WHERE Machin = 'toto'", DAO.dbOpenSnapshot)
     
    rec.MoveLast
    nb = rec.RecordCount
    rec.MoveFirst
    ActiveWorkbook.Sheets("Param").Range("A1").CopyFromRecordset rec
     
     
    For Each sh In ActiveWorkbook.Sheets(curshname).Shapes
        If sh.Type = msoFormControl And sh.Name Like "Drop*" Then
            sh.Select
                Selection.ListFillRange = "Param!$A$1:$A$" & nb
            Exit For
        End If
    Next sh
     
    rec.Close
    db.Close
     
    Set rec = Nothing
    Set db = Nothing
     
    End Sub
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    En y repensant, nous ne sommes pas obligés de passer par une feuille Param.

    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
    Sub FillCombo()
     
    Dim db As DAO.Database
    Dim rec As DAO.Recordset
     
    curshname = ActiveSheet.Name
    Set db = DAO.OpenDatabase("C:\Temp\MaBase.mdb", False, False)
     
    Set rec = db.OpenRecordset("SELECT unChamp FROM MaTable WHERE Machin = 'toto'", DAO.dbOpenSnapshot)
     
    For Each sh In ActiveWorkbook.Sheets(curshname).Shapes
        If sh.Type = msoFormControl And sh.Name Like "Drop*" Then
            sh.Select
                Do While Not (rec.EOF)
                    Selection.AddItem rec.Fields(0).Value
                    rec.MoveNext
                Loop
            Exit For
        End If
    Next sh
     
    rec.Close
    db.Close
     
    Set rec = Nothing
    Set db = Nothing
     
    End Sub
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



Discussions similaires

  1. Remplir une zone de liste Excel par une requête Access
    Par cafeine dans le forum Contribuez
    Réponses: 0
    Dernier message: 29/12/2011, 10h57
  2. Réponses: 18
    Dernier message: 24/01/2010, 07h40
  3. Remplir une zone de liste Excel par une requête Access
    Par Bourbaky dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/10/2007, 15h00
  4. Réponses: 1
    Dernier message: 09/10/2007, 14h17
  5. Remplir une zone de liste Excel avec une requête Access (problème)
    Par Tontorise dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 30/05/2007, 14h26

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