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 un combobox à partir d'un champ ACCESS [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 252
    Points : 192
    Points
    192
    Par défaut Remplir un combobox à partir d'un champ ACCESS
    Bonjour
    Je débute sous excel 2007 et j'ai un souci pour remplir mon combox.
    Je souhaiterai récupérer à partir d'une table access un champ de cette table pour remplir mon combobox.
    J'arrive à remplir mon combobox avec une liste "en dur" du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FIRMS.AddItem "4"
    FIRMS.AddItem "5"
    Mais je ne parviens pas à remplir le combobox avec une table acces, ou bien même une plage d'une autre feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FIRMS.AddItem Sheets("FICHE EN VALEUR").range("A2:A5").Value
    ne fonctionnant pas.
    Etant débutant en VBA....
    Merci d'avance

  2. #2
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Bonjour,
    tu ne choisis pas le plus simple pour débuter, mais ce n'est pas impossible.
    Une approche simple consiste dans un premier temps à récupérer les données de ta table dans une feuille de ton classeur, une méthode dans la FAQ ici : http://excel.developpez.com/faq/?pag...ortTableAccess.

    ensuite si les données sont par exemple dans le colonne A de ta nouvelle feuille qu'on appellera Feuil1 (A1=entête donc donnée en A2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    derlign = Sheets("Feuil1").Range("A65000").End(xlUp).Row
    For i = 2 To derlign
    Me.ComboBox1.AddItem Range("A" & i).Value
    Next
    .

    Tu peux parcourir aussi cet excellent tutos sur la communication entre Access et Excel :http://cafeine.developpez.com/access/tutoriel/excel/

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 252
    Points : 192
    Points
    192
    Par défaut
    tout d'abord merci
    Maintenant j'ai un autre souci
    Voici mon code exact
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim derlign As Integer
    Dim i As Integer
    derlign = Sheets("FICHE EN VALEUR").range("A15").End(xlUp).Row
    For i = 2 To derlign
    FIRMS.AddItem range("A" & i).Value
    Next i
    J'ai supposé que derlign était un integer car on cherche la dernière ligne.
    Cependant, rien ne s'affiche.
    Pourtant, si on suit l'algo, effectivement on devrait avoir un truc.
    on cherche la dernière ligne.
    Pour 2 à la dernière ligne, ajouter au combobox FIRMS la valeur de "A2" à Adernièreligne....
    Merci d'avance

  4. #4
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    effectivement derlign peux-être un Integer.

    essaye en remplaçant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FIRMS.AddItem range("A" & i).Value
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FIRMS.AddItem Sheets("FICHE EN VALEUR").range("A" & i).Value

  5. #5
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    rvtoulon avait proposé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derlign = Sheets("FICHE EN VALEUR").range("A65000").End(xlUp).Row
    et tu as fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derlign = Sheets("FICHE EN VALEUR").range("A15").End(xlUp).Row
    Du coup, tu as peut-être derligne = 0, ce que tu peux vérifier en exécution pas à pas.

    Pour être bien sûr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derlign = Sheets("FICHE EN VALEUR").range("A" & Application.Rows.count).End(xlUp).Row
    PGZ

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 252
    Points : 192
    Points
    192
    Par défaut
    Ca marche !
    Alors en fait, je me suis mis sur Excel et VBA un peu (beaucoup) par obligation car ma femme devait faire un truc et "toi tu es informaticien, tu comprends ces choses là" sachant que je suis développeur PHP...
    Bref, elle avait mit 2 fois la base de donnée (donc de A1 à A15 et de A7 à A22). Je ne sais pas pourquoi, mais bon.
    Bref, ça marche avec les 2 méthodes, j'ai supprimé la deuxième base et fait un FIRMS.clear au début pour nettoyer tout ça...
    Merci beaucoup !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 24/01/2008, 22h36
  2. [MySQL] remplir une liste à partir d'un champs texte
    Par myinformatique dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 27/07/2007, 17h10
  3. Réponses: 15
    Dernier message: 26/07/2007, 13h52
  4. Réponses: 1
    Dernier message: 23/05/2007, 11h49
  5. chargement d'un combobox à partir d'une table access
    Par sarah_s dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/05/2007, 17h19

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