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

Steph38a69 -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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?
    1
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,
    Je recupere les fichiers et regarde la chose
    1
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1
    1. Steph38a69
       
      Les Tables TREF et TPJ sont du texte aussi. Je vais regarder le partage merci
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Steph38a69
         
        Bonjour,

        Ca ne dit pas comment cote code vous remplissez ces tables
        0
  4. Steph38a69
     
    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 :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Y a pas de textbox1!!!!
    0
    1. Steph38a69
       
      Re,
      J'ai oublié de mettre à jour cette info c'est la textbox13 dans le userform
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > 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?
        0
  7. Steph38a69
     
    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?
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,
      Autant pour moi, ok, petit moment d'inattention
      J'ai presque fini

      Suite:
      fichier word modifie:
      https://mon-partage.fr/f/KtoOYzXV/
      0
      1. Steph38a69 > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        Trop biennnnnn j'ai hâte de découvrir THE CODE !!!!!! MERCI
        0
      2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Steph38a69
         
        Re,
        Relire post <8> pour avoir le fichier
        0
  8. Steph38a69
     
    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!
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      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.
      0
      1. Steph38a69 > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        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
        0
  9. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    0
    1. Steph38a69
       
      Hello! ok cela veut dire que si il y a une modification du fichier excel, il y a un risque de Bug ?
      0
    2. Steph38a69
       
      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
      0
    3. Steph38a69
       
      Bon ben voila voila j'y étais presque mais non! Merci pour ton modèle c'est parfait!
      0