|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Marc BaraInscription : mai 2011 Messages : 124 ![]() |
Bonjour à tous, voici que je veux faire, je possede un ficher sous Excel me permettant de remplir des devis, et pour selectionner les noms qui sont présents sous une page excel, je les ai placé dans une base de données sous access.
J'aimerais savoir si il est possible de lier une liste déroulante des noms de mes clients à la base de données access qui contiendrait les noms, prénoms, adresses etc.... Est ce possible ? |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour,
Sans macro, je pense que tu ne peux qu'importer les données Access dans Excel pour alimenter ta liste déroulante. Reste la solution macro, si ça te tente.
__________________
Cordialement. Daniel Citation:
|
|
|
10
|
|
|
#3 |
|
Invité régulier
![]() Marc BaraInscription : mai 2011 Messages : 124 ![]() |
Ce que je voudrai idéalement est que ma liste déroulante soit lié à ma base de données access.
est ce possible de faire cela ? et qu'entends tu par la solution macro ? |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Une macro qui lira les infos et alimentera un contrôle (ListBox, ComboBox ou ListView). Si on utilise un liste de validation de données, on ne peut l'alimenter qu'avec une colonne, ce qui fera qu'il faudra aller chercher à chaque fois les autres infos sur la base Access. A moins que la dimension de la table permette de la mettre dans une variable tableau.
__________________
Cordialement. Daniel Citation:
|
|
|
10
|
|
|
#5 |
|
Invité régulier
![]() Marc BaraInscription : mai 2011 Messages : 124 ![]() |
Oui mais je débute dans ce qui concerne les applications Sql sous Excel, est ce que je dois faire une commande dans le genre
Do.cmd.RunSQl avec un select ? ou c'est totalement différent ? |
|
|
00
|
|
|
#6 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Je vais essayer de te construire la macro. Donne-moi me nom des champs de la table et le nombre de lignes.
__________________
Cordialement. Daniel Citation:
|
|
|
10
|
|
|
#7 |
|
Invité régulier
![]() Marc BaraInscription : mai 2011 Messages : 124 ![]() |
Bon eh bien ma base de données contient 16 tables, celle qui doit alimenter la liste déroulante est la table "Contacts", constituées de 31 colonnes, la colonne que je veux afficher est la colonne "Nom" qui est la 11eme colonne, et qui possede actuellement 565 lignes, et qui en possedera 3000 d'ici peu de temps.
|
|
|
00
|
|
|
#8 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Oui, mais bon, une fois que tu auras sélectionné un nom avec la liste déroulante, quelles sont les données que tu souhaites récupérer ? Quels champs et où sont-ils situés dans la table Access ? Pendant que tu y es, donne-moi le nom de la base et le nom de la table.
__________________
Cordialement. Daniel Citation:
|
|
|
10
|
|
|
#9 |
|
Invité régulier
![]() Marc BaraInscription : mai 2011 Messages : 124 ![]() |
Bon, en tout et pour tout, on aura deux liste déroulantes, une qui donne soit le nom de la société, soit le statut "particulier", la seconde liste déroulante quant à elle doit afficher une liste de nom, c'est à dire, lorsque le statut de la premiere liste est un particulier.
Une fois un des deux choix faits, il faudra faire apparaitre dans des cellules, l'adresse, le numéro de téléphone, le fax, et l'email. Dans ma base de données access, sur ma table "contact", il y a 31 champs dans cet ordre : Numéro Entreprise Sensibilité Adresse CP Ville Pays Service Titre Prénom Nom Fonction Téléphone GSM Fax Autre Email Annotations Prospect Interne Client Fournisseur Partenaire SousTraitant Origine OriginePrécision Suivi DateCréé SensibilitéNO DateModif AutresSuivis PS : La base s'appelle Carnet.mdb |
|
|
00
|
|
|
#10 |
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Bonjour,
demande à un modérateur (MP) de déplacer ton message vers général VBA, les contributeurs VBA Acces étant au moins aussi à mène de te donner la bonne réponse cordialement, Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
|
|
10
|
|
|
#11 | ||||||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Pour Ormonth :
Ce n'est pas la mer à boire. Juste lire dans un recordset... Je vais le faire, pour le fun. Pour Colapsus : Tu auras sans doute une réponse dimanche au plus tard (à moins qu'un autre contributeur soit plus disponible, ce que je te souhaite). J'avais survolé ceci. Citation:
Regarde le classeur joint (si tu ne peut pas le décompresser, dis-le). Les résultats sont en colonne B, les listes en E1 (entreprises) et G1 (noms). S'il s'agît d'une entreprise, l'autre liste déroulante est supprimée. Elle est recréée s'il s'agît d'un particulier. Le nom de la base et son chemin, et le nom de la table se retrouvent plusieurs fois dans le code. Ils doivent être modifiés. Si la BDD est au format 2007, tu dois cocher la référence : Microsoft Office nn.0 Access database engine Object Library s'il s'agît d'une base format ".mdb", tu dois cocher la référence : Microsoft DAO 3.n Object Library Dans le module "ThisWorkbook", le code est le suivant : Code :
Code :
J'ai supposé, peut-être à tort, que lorsqu'il s'agissait d'un particulier, il y avait la valeur "particulier dans le champ "Entreprise". Dis-moi ce qu'il en est.
__________________
Cordialement. Daniel Citation:
|
||||||
|
11
|
|
|
#12 |
|
Invité régulier
![]() Marc BaraInscription : mai 2011 Messages : 124 ![]() |
Bon je vais essayer d'éclaircir tout ça, pour commencer, j'ai une base de données qui a pour nom "carnet.mdb" , dans ce carnet se trouve 16 tables, et moi je travaille sur la table qui a pour nom "Contacts", dans cette table, je me concentre pour le moment sur les colonnes "nom" et "prénom", et je voudrais que ces 2 colonnes soit liées à une liste déroulante sous Excel.
Daniel, je ne suis pas sur de ce que tu a fait, pourrais tu me l'expliquer en détail ? |
|
|
00
|
|
|
#13 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
D'abord, les noms de la base et de la table sont à changer. J'ai travaillé sur les champs "Nom" et "Entreprise". A l'ouverture du classeur, une liste déroulante est créée en E1 pour les entreprises et en G1 pour les noms. Lorsque tu choisis une entreprise, les champs "Adresse", "Téléphone", "Fax" et "Mail" correspondants s'affichent en B1:B4. Si "particulier" est sélectionné dans le liste en E1 (entreprises), la liste en G1 affiche les noms; tu peux ensuite choisir un nom dans la liste et les résultats s'afficheront en B1:B4. Sinon, si une entreprise est sélectionnée en E1, la liste en G1 est supprimée et les données correspondant à l'entreprise s'affichent en B1:B4.
Je ne suis pas sûr du tout qu'il y ait "particulier" dans la colonne "Entreprise" lorsqu'il ne s'agit pas d'une entreprise. Dis-moi si mon appli fonctionne correctement. De mon côté, je vais modifier le classeur pour que le nom de la base et celui de la table se trouvent en un seul endroit, afin qu'il soit facile à modifier. Si tu pouvais aussi me donner le chemin de la base ?
__________________
Cordialement. Daniel Citation:
|
|
|
10
|
|
|
#14 |
|
Invité régulier
![]() Marc BaraInscription : mai 2011 Messages : 124 ![]() |
Le chemin de l'adresse est :
C:\Users\Marc\Desktop\N'AIRSOL\Carnet.mdb Merci de ton aide Daniel |
|
|
00
|
|
|
#15 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Regarde le classeur en pièce jointe.
__________________
Cordialement. Daniel Citation:
|
|
|
10
|
|
|
#16 |
|
Invité régulier
![]() Marc BaraInscription : mai 2011 Messages : 124 ![]() |
Ca fonctionne presque ^^, lorsque je lance la macro apres avoir modifié le code pour mettre dans le chemin ma base de données, il me demande un mot de passe, qui est malheureusement obligatoire pour acceder à carnet.mdb, ya t'il un bout de code à rajouter avec l'entete du mot de passe, ou dois je le supprimer ?
|
|
|
00
|
|
|
#17 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
On dirait que ma dernière réponse est passée à la trappe...
La syntaxe est la suivante : Code :
Set db = OpenDatabase(Chemin & NomBase, False, False, "MS Access;PWD=PASSWORD")
__________________
Cordialement. Daniel Citation:
|
|
|
10
|
|
|
#18 |
|
Invité régulier
![]() Marc BaraInscription : mai 2011 Messages : 124 ![]() |
Oui en fait, j'aimerai que tu me dises ou insérer la ligne de code qui dit lorsque je lance la macro, au moment de l'ouverture de la base de données, utilise le mot de passe indiqué, qu'il le fasse automatiquement
|
|
|
00
|
|
|
#19 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Dans Module1, j'ai ajouté la ligne :
Au début de la macro WorkBook_Open, j'ai ajouté : Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
10
|
|
|
#20 | |
|
Invité régulier
![]() Marc BaraInscription : mai 2011 Messages : 124 ![]() |
Lorsque le mot de passe est faux, on obtient un message d'erreur qui dit :
Citation:
Puis je t'envoyer une base de données incompletes, que tu voies en détails a quoi cela ressemble ? J'ai trouvé la réponse a cela, premierement, il fallait retrancher de un, en effet, la colonne des noms étant au 11 eme rang, il fallait mettre field(10). Y'aurait il un moyen de faire des passages a la ligne, et de passer directement lorsque le nom n'est pas présent, au lieu d'avoir des virgules ? Je te remercie en tout cas pour l'aide que tu m'apportes. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com