Remplir combobox à l'ouverture d'excel [Résolu]

Signaler
Messages postés
14
Date d'inscription
dimanche 13 avril 2008
Statut
Membre
Dernière intervention
8 juin 2009
-
Messages postés
14
Date d'inscription
dimanche 13 avril 2008
Statut
Membre
Dernière intervention
8 juin 2009
-
Bonjour, je travaille sur excel avec une base de données access. Je souhaite que en ouvrant mon fichier excel, la connexion à ma base access s'exécute automatiquement et que également, une liste déroulante  qui se trouve sur une feuille excel soit remplie dès l'ouverture. J'arrive à me connecter mais j'ai plus de mal à alimenter mon combobox. Je veux insérer le nom et prénom des clients dans le combobox
Voici le début de mon code :

Option Explicit
Dim Connexion As New ADODB.Connection
Dim Chaine As String
Dim Requete As String
Dim Recordset As New ADODB.Recordset


Private Sub Workbook_Open()


Chaine = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\...........bd1.mdb"


Connexion.Open Chaine


Requete = "SELECT NomClient, PrenomClient FROM Client"

???


End Sub

Merci pour votre aide

6 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Quelle version de Excel ?
As-tu vraiment ajouter ce composant (Boite à outils Contrôles) ou bien apparait-il après une des fonctions du menu Données ?
Car, dans ce dernier cas, l'objet créé est déjà associé à une source d'informations, dont pas possible d'intervenir directement dans son contenu, il faut agir sur les plages de données associées lors de sa création.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Salut
Attention de ne JAMAIS appeler une variable avec le nom d'un mot clé du langage : RecordSet --> à renommer
   Dim rs As ADODB.RecordSet

Méthode de requète standard et le lecture standard :
   rs.Open Requete, Connexion, adOpenStatic, adLockReadOnly
   maComboBox.Clear
   With rs
      If .RecordCount <> 0 Then
         .MoveFirst
         Do While Not .EOF
            maComboBox.Add .Fields("NomClient").Value
            .MoveNext
         Loop
      End If
   End With

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14
Date d'inscription
dimanche 13 avril 2008
Statut
Membre
Dernière intervention
8 juin 2009

Salut, merci de m'aider. Mon autre problème, le dernier j'espère, est que ma combobox est créée directement sur une feuille excel et non pas sur une form, donc comment l'appeler et surtout comment savoir son nom ?
Merci
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Lorsque tu insères ce genre d'objet, un nom lui est automatiquement associé - Voir le cadre blanc "Zone Nom" en haut à gauche, au dessus de la deuille active.
Pour accéder à cet objet, il suffit de l'appeler par son nom
    With ActiveSheet
        ComboBox1.AddItem "Coucou"
    End With

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14
Date d'inscription
dimanche 13 avril 2008
Statut
Membre
Dernière intervention
8 juin 2009

Je viens juste de créer une autre combobox. Par défaut son nom est Zonecombinée13.

With ActiveSheet

   Zonecombinée13.AddItem "salut"

End With

erreur 424
objet requis

une explication ?

Merci
Messages postés
14
Date d'inscription
dimanche 13 avril 2008
Statut
Membre
Dernière intervention
8 juin 2009

Merci j'ai trouvé la raison, j'utilisais la boite à outils formulaire et non controles.
Merci encore.