Remplir tableau depuis base de données

Bonjour à tous,

J'aimerais réussir à travers VBA le remplissage de formulaires déja établis depuis une base de données. Le soucis ici est que les noms des colonnes de la base de données n'est pas similaire à celui du formulaire (et cela ne peut être changé malhereusement...). J'ai donc créé un tableau de correspondance:

Règles de remplissage

Catégorie formulaire -> Colonne base de données correspondante

Numéro d'étudiant -> [ID E]

Nom de l'étudiant -> [N.E] - [P.E]

Degré actuel -> [CL]

Corps d'étude -> [Spec]

Y'a t il une bonne âme qui sait comment les faire correspondre? Je l'ai eu fait dans le passé (lointin...) avec des colonnes et des formulaires aux noms identiques mais là je sèche complètement ! Je vous ai joins le fichier d'exemple en pièce jointe. L'idée est d'avoir un formulaire par étudiant.

Un grand merci par avance à ceux qui sauront m'aider dans cette quete !

Jack

Bonjour lejack02,

pas sur d'avoir tout compris dans ta demande.

J'ai cherché un formulaire (userform) je n'en n'ai pas trouvé peut être que tu appelles formulaire l'onglet Template si c'est le cas pas besoin de vba pour ça voir le fichier que je te met en exemple.

Cordialement.

Bonjour Big Daddy,

Merci pour ta réponse. Oui c'est bien l'onglet "template".

Je souhaite utiliser VBA pour remplir les 600 "templates" de manière automatisé afin que je n'ai pas à passer 2 semaines dessus à chaque fois que cet exercice doit être fait (régulièrement...).

Mon gros problème étant que les colonnes du tableau ne sont pas nommés pareil que les titres du formulaire ("Numéro d'étudiant" dans la base de données équivaut à [ID E] dans la feuille "template"). J'avais trouvé quelque chose qui fonctionnait pour populer lorsque les noms était pareils (voir en dessous) mais je n'ai aucune idée de comment faire quand les noms sont différents.

  Set celltemp = Range("B:B").Find(tbl.HeaderRowRange(y).Value, LookIn:=xlValues, Lookat:=xlWhole) 

            If Not celltemp Is Nothing Then

                celltemp.Offset(0, 1) = tbl.DataBodyRange(x, y).Value

Je t'ai mis une liste déroulante en B2 dans ton onglet template sur le fichier que j'ai posté, tu as juste à choisir le nom les champs se remplissent automatiquement est-ce que ça te conviens ?

Cordialement

Oui merci beaucoup j'ai vu. Ce que je souhaite serait de cliquer sur un bouton et que pour chaque ligne de ma base de données (600 en tout), un fichier "template" se crée et soit sauver dans un dossier avec le nom l'ID comme nom de fichier, d'ou mon ambition de trouver une macro. Toute cette partie je pense y arriver tout seul par VBA. La partie pour laquelle je n'ai absolument aucune idée c'est le remplissage automatique des données en fonction des conditions suivantes :

Catégorie formulaire -> Colonne base de données correspondante

Numéro d'étudiant -> [ID E]

Nom de l'étudiant -> [N.E] - [P.E]

Degré actuel -> [CL]

Corps d'étude -> [Spec]

Je ne sais pas si mon explication est claire (désolé d'ailleurs c'est pas facile d'expliquer ).

Merci encore de prendre du temps !

Rechercher des sujets similaires à "remplir tableau base donnees"