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 :

Userform - ComboBox en cascade avec base de donnée Excel


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2021
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Userform - ComboBox en cascade avec base de donnée Excel
    Bonjour à tous et à toutes!

    Tout d'abord merci pour votre forum qui m'a beaucoup aidé dans la construction de mon projet. Je fais appelle à vous car je bloque...

    Je dois créer un modèle de document word avec un Userform interactif. A l'aide de l'Userform, l'utilisateur rentre les coordonnées du signataire et du destinataire (ça c'est ok avec remplissage des signets). mais pour le choix du modèle de courrier là je me tire le brushing!

    j'ai une base Excel :
    Colonne A : Thématique
    Colonne B : Catégorie
    Colonne C : Contenus (corps du courrier)

    Dans ma Userform :
    2 Zones de liste modifiable en cascade
    1 text box

    ComboBox 1 => Thématique
    Est-ce qu'il y aurait un code VBA pour éviter les doublons
    exemple : J'ai 3 modèles lettres concernant la correspondance aux Assurances - et 6 M.L. concernant les Décès
    Voici mon code relié à mon fichier Excel Colonne A

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Private Sub UserForm_Initialize()
     
    Dim xlApp As Object
    Dim DocExcel As String
    Dim classeur, ligne, k
    classeur = "BDD_COURRIERS-ADMINISTRATIFS.xlsx"
    DocExcel = ActiveDocument.Path & "\" & classeur
     
    Set xlApp = GetObject(DocExcel)
    If Err <> 0 Then Set xlApp = CreateObject("Excel.Application")
    On Error GoTo 0
    If Err <> 0 Then xlApp.Open (DocExcel)
     
    ligne = xlApp.Sheets("Feuil1").Range("A1").CurrentRegion.Rows.Count
    For k = 2 To ligne
        If xlApp.Sheets("Feuil1").Cells(k, 1) = "" Then Exit Sub
        UserForm1.ComboBox1.AddItem xlApp.Sheets("Feuil1").Cells(k, 1)
    Next
    Set xlApp = Nothing
     
    End Sub
    Ce que je souhaiterais c'est que la ComboBox2 => Colonne 2 : Catégorie s'alimente en fonction du click de la ComboBox1

    ComboBox1 :
    Assurances
    ComboBox2 :
    Résiliation Assurance Auto
    Modification Contrat d'assurance habitation
    Modification Contrat Auto-Moto - Ajout de nouveau conducteur etc
    et dans la TextBox13 s'affiche le contenus (soit colonne C) correspondant à mon ma sélection de la Combobox2.

    J'ai trouvé un code VBA mais qui demande décrire pour ajouter chaque item en fonction (ce qui est très bien) mais si ma base de donnée doit avoir un ajout ou une modification il faudra alors modifier le Code VBA. Ce qui pour le moment pourra être gérer par moi mais sur le court terme je cherche donc une solution sur le long terme.
    Je sais que cette "fonction" de ComboBox en cascade est possible dans Excel mais est il possible de le faire dans Word avec la source de donnée Excel ?

    J'en demande beaucoup, j'espère que nous pourrons échanger sur ce sujet!
    Je vous remercie de prendre le temps pour m'aider.
    En attendant de vous lire, je vous souhaite une belle journée!
      0  0

  2. #2
    Membre confirmé
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    Décembre 2021
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auto entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2021
    Messages : 347
    Points : 546
    Points
    546
    Par défaut
    Citation Envoyé par Stéphanie38 Voir le message
    Bonjour,

    Au cas où votre problème n'est pas réglé, il vous faut :
    • Créer un tableau (structuré) correspondant à vos thématiques sans doublons qui alimentera votre combobox1 lors de l'initialisation de votre userform.
    • Sur l'événement Combobox1_Change, il vous faut effacer le contenu de Combobox2 et lancer une boucle sur votre tableau (A,B,C) pour récupérer vos items correspondant à l'item choisi dans Combobox1.
    • Sur l'événement Combobox2_Change, effacement du textbox et récupération du contenu avec une boucle sur votre tableau (A,B,C) correspondant aux items choisis dans A et B.
      0  1

  3. #3
    Candidat au Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2021
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour merci pour votre réponse malheureusement dans la combobox1 je ne peux pas éviter les doublons.
      0  0

  4. #4
    Membre confirmé
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    Décembre 2021
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auto entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2021
    Messages : 347
    Points : 546
    Points
    546
    Par défaut
    Citation Envoyé par Stéphanie38 Voir le message
    Ben non, il vous faut construire une table indépendante.

    Sinon, il vous faut utiliser une variable dictionnaire et réordonner la matrice résultante. Il y a des exemples sur le forum Excel. La table indépendante est la solution la plus simple.
      0  1

  5. #5
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Pas certain d'avoir bien compris ce que vous cherchez à faire
    Une idée en pj
    Fichiers attachés Fichiers attachés
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur
      0  1

Discussions similaires

  1. [Débutant] Form avec base de données ACCESS et ComboBox
    Par Crachover dans le forum VB.NET
    Réponses: 6
    Dernier message: 17/02/2021, 16h38
  2. [Débutant] Combobox en cascade via base de données Excel
    Par a23peter43 dans le forum C#
    Réponses: 0
    Dernier message: 02/08/2017, 11h25
  3. [2007] Publipostage Word en PDF automatique avec base de données Excel
    Par Klimero44 dans le forum Microsoft Office
    Réponses: 7
    Dernier message: 11/12/2015, 00h27
  4. Info : Petit programme VBA avec base de donnée excel
    Par guismoman60 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/10/2013, 10h20
  5. [WD-2007] publipostage avec base de données Excel
    Par Minisucre971 dans le forum Word
    Réponses: 1
    Dernier message: 22/03/2013, 10h55

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