Remplir une combobox d'un Userform word avec une BDD Excel dans Word

Signaler
-
Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021
-
Bonjour!!!

J'aurais besoin de votre pour des ComboBox dépendante dynamique dans un Userform Word liée à un BDD Excel (+ de 25 items).

J'ai une Base de Donnée Excel
Chaque feuille est répertoriée dans ma Combobox 1

ComboBox1 :
Feuil1 nommé -> Cat 1
Feuil2 nommé -> Cat 2
Feuil3 nommé -> Cat 3 etc ...

Voila mon code :

Private Sub Userform_initialize()
'Déclaration des variables pour ouvrir Excel
'Application Excel
Dim appExcel As New Excel.Application
'Classeur Excel
Dim wbExcel As Excel.Workbook
'Feuille Excel
Dim wsExcel As Excel.Worksheet
'Ouverture de l'application
'Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open("C:\Users\stephanie.rigotti\Desktop\HABILITIS\BDD_COURRIERS-ADMINISTRATIFS V2.xlsx")
appExcel.Visible = True
'Choix du nom de l'enfant
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Sheets
UserForm1.ComboBox1.AddItem sh.Name
Next
appExcel.Workbooks("BDD_COURRIERS-ADMINISTRATIFS V2.xlsx").Close
appExcel.Quit

End Sub

et là c'est le drame...

J'aimerais que dans ma ComboBox2 s'affiche les sous catégorie (colonne A) correspondant à la ComboBox1 l'item (soit à la feuille sélectionné)
Soit
ComBoBox1 ComboBox2
Cat1 Cat1.a
Cat1.b

Cat2 Cat2.1
Cat2.2
Cat2.3
Cat2.4 etc...

Ensuite je voudrais sur la même base récupérer les descriptifs se trouvant dans la colonne B de chaque catégorie dans la textbox1
Soit :

ComBoBox1 ComboBox2 TextBox1
Cat1 Cat1.a jvslkfbkl sdkvjsd vklsd v skdl vskl
Cat1.b dvbjsdklfbsf sdkv svsldv s vlsk vs

Cat2 Cat2.1 dfvsfsg fbebrg ergergegbn rtheheg
Cat2.2 fgsfgsg gzgzgzgg bgzegb z rzvss
Cat2.3 fjzsdf z vhzljv zv svsj v vz v
Cat2.4 etc... sdvnkdjn zklv zkjv zsv sld

Je n'arrive pas à comprendre comment récupérer les données de la ligne en fonction du choix de la comboBox1....

S'il vous plaît, aidez moi, j'en rêve la nuit...:marteau: :bug:

Je vous remercie par avance :)

8 réponses

Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021
1 512
Bonjour,
Pouvez joindre vos fichiers

Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES, mais des donnees cohrentes quand meme.
il faut passer par un site de pièce jointe tel que cjoint.com

Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...

ou
'mon partage
https://mon-partage.fr/

Pourquoi Word/Excel et pas seulement Excel?
Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021
1 512
Re,
Je recupere les fichiers et regarde la chose
Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021
1 512
Bonjour,

Les tables TRef et TPJ sont remplies comment

Vous avez deux fois TextBox13

A defaut de reponse, fichier code modifie: https://mon-partage.fr/f/tyHpKqVk/
Ai ajoute des infos colonnes C et D pour Consommation. A vous de voir avec votre fichier xlsx
Les Tables TREF et TPJ sont du texte aussi. Je vais regarder le partage merci
Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021
1 512 > Steph38a69
Bonjour,

Ca ne dit pas comment cote code vous remplissez ces tables
Bonjour f894009,

Merci de ton intérêt!
ci-dessous le lien:

https://www.cjoint.com/c/KFCiKIqfJuC

J'ai choisi word par rapport aux utilisateurs car leurs niveaux est basique voir débutant. et pour un suivi il me faut une base de donnée. Je sais pas si je suis clair.. je débute en VBA, je trouve que je me suis pas trop mal débrouillée pour le moment mais c'est vrai que pour la liste déroulante en cascade et lié à la source de donnée excel je séche.
Merci de ton regard :)
Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021
1 512
Re,

Y a pas de textbox1!!!!
Re,
J'ai oublié de mettre à jour cette info c'est la textbox13 dans le userform
Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021
1 512 > Steph38a69
Re,

Ok, y a une textbox1, mais pas la bonne
Ca avance bien

Quel est le rapport entre combobox2 (Type de model) et la colonne B Contenu?
La combobox1 "Catégorie" correspond aux feuilles du fichier excel

La combobox2 "Type de modèle" correspond à la colonne A de chaque feuille soit Objet. Il y a un code sur cette combobox pour renvoyer son résultat dans la textbox10 correspondant au signet dans le word.

La textbox13 doit se remplir du contenu en colonne B des feuilles Excel en fonction des résultats des précédentes listes déroulantes.

C'est plus clair?
Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021
1 512
Re,
Autant pour moi, ok, petit moment d'inattention
J'ai presque fini

Suite:
fichier word modifie:
https://mon-partage.fr/f/KtoOYzXV/
>
Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021

Trop biennnnnn j'ai hâte de découvrir THE CODE !!!!!! MERCI
Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021
1 512 > Steph38a69
Re,
Relire post <8> pour avoir le fichier
C'est génial! un si petit code.... je risquer pas de trouver à mon niveau. Merci Beaucoup f894009, vous êtes un pro :) merci mille fois!
Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021
1 512
Re,

je risquer pas de trouver à mon niveau
Ah, il faut donc que je vous mettes des commentaires sauf si vous pouvez dechiffrer le code.
>
Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021

du coup je viens de l'analyser et j'ai bien compris à quoi sert listindex maintenant. J'ai vu aussi que vous aviez remis de l'ordre dans mes codes :) ce qui me permet de comprendre. comment j'aurais du procéder autrement. Déjà déclarer l'objet Excel... Si je dois me relancer dans le VBA pourriez vous me donner des conseils ? (genre formation, Bible etc...) car les codes sur les forums c'est bien mais quand on voit le mien c'est vite le bazard du coup! :D
Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021
1 512
Bon jour,

Déjà déclarer l'objet Excel...
Avant d'écrire la premiere ligne de code, il faut que le projet a realiser soit clair et structure dans votre tête (intense réflexion assez souvent, mais nécessaire) sinon vous devenez un pro de l'aviron voir abandon.
ex: votre fichier Excel doit rester ouvert tant que vous ne fermez l'UF (bouton edit ou croix).
il faut donc declarer l'objet Excel au debut du code de l'UF, pour pouvoir l'utiliser dans toutes les procedures de l'UF. J'écris bien dans l'UF pas dans des modules si vous en ajoutez.
A vous de trouvez comment faire cette déclaration

Le reste n'est que de l'empilage de code en fonction de la structure projet prevue et du langage de programmation que vous utilisez.

Pour la formation, cote sites, y a beaucoup
Hello! ok cela veut dire que si il y a une modification du fichier excel, il y a un risque de Bug ?
Re,

Je me permet une autre question du coup. Si je dois rajouter des colonnes aux feuilles de mon excel et que ces colonnes doivent s'afficher dans une textbox aux résultats de la ComboBox2

Voici le code que je mettrais (par rapport à ce que tu as déjà fait :

Option Explicit

'Déclaration des variables pour ouvrir Excel
'Application Excel
Dim appExcel As New Excel.Application
'Classeur Excel
Dim wbExcel As Excel.Workbook
'Feuille Excel
Dim wsExcel As Excel.Worksheet
Dim TObjets, TContenus
Dim TRéférences
Dim TPJ

Private Sub ComboBox2_Change()
If ComboBox2.ListIndex <> -1 Then
TextBox10.Value = ComboBox2
TextBox13.Value = TContenus(ComboBox2.ListIndex + 1, 1)
TextBox12.Value = TRéférences(ComboBox2.ListIndex + 1, 1)
TextBox13.Value = TPJ(ComboBox2.ListIndex + 1, 1)
End If
End Sub

Mais il m'affiche une erreur d'exécution "13" - Incompatibilité de type.

Du coup il y a un pb au niveau de la déclaration de l'objet variable ?!

Merci à toi pour ta patience.

Steph
Bon ben voila voila j'y étais presque mais non! Merci pour ton modèle c'est parfait!