Remplir combobox à l'ouverture d'excel

Résolu
didou853113
Messages postés
14
Date d'inscription
dimanche 13 avril 2008
Statut
Membre
Dernière intervention
8 juin 2009
- 12 mai 2009 à 09:01
didou853113
Messages postés
14
Date d'inscription
dimanche 13 avril 2008
Statut
Membre
Dernière intervention
8 juin 2009
- 12 mai 2009 à 15:52
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

cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
12 mai 2009 à 15:19
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)
3
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
12 mai 2009 à 10:29
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)
0
didou853113
Messages postés
14
Date d'inscription
dimanche 13 avril 2008
Statut
Membre
Dernière intervention
8 juin 2009

12 mai 2009 à 10:53
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
0
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
12 mai 2009 à 13:27
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

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

12 mai 2009 à 13:57
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
0
didou853113
Messages postés
14
Date d'inscription
dimanche 13 avril 2008
Statut
Membre
Dernière intervention
8 juin 2009

12 mai 2009 à 15:52
Merci j'ai trouvé la raison, j'utilisais la boite à outils formulaire et non controles.
Merci encore.
0