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

VBA Word Discussion :

Word créer une liste déroulante permettant d'afficher/masquer un paragraphe


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2019
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Word créer une liste déroulante permettant d'afficher/masquer un paragraphe
    Bonjour,

    J'ai un formulaire word qui contient plusieurs paragraphes contenant eux mêmes de nombreux champs.
    Ce formulaire est un courrier type qui n'est pas lié à un publipostage..
    Je cherche a faire en sorte que lorsque l'on choisi l'objet du courrier qui est dans une liste déroulante avec 2 choix, un paragraphe différent s'affiche selon le choix.
    J'ai trouvé pas mal de solutions en vba permettant d'afficher du texte selon le choix de la liste déroulant mais cela ne répond pas à mon problème. En effet, j'ai besoin que ces paragraphes contiennent des champs.
    J'ai donc pensé à la possibilité de créer des signets au niveau des paragraphes et d'afficher ou masquer ces signets en fonction du choix de la liste déroulante.
    Malheureusement débutant en vba, je n'arrive pas à trouver la solution.
    D'autant plus qu'il faut pouvoir enlever la protection avec mot de passe et la remettre à la fin de l'exécution de la macro.
    D'avance merci pour votre aide ou toute solution pouvant aboutir au résultat :-)

    Sam

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sam092 Voir le message
    Bonjour,

    Sauf erreur de ma part, afficher ou masquer les signets signifie seulement faire apparaître ou masquer les crochets délimitant les signets.

    Je vois deux possibilités :
    • La plus facile, créer un objet Quickpart pour chaque cas. Regarder si les champs sont bien récupérés, je n 'ai pas testé.
    • Sinon, dans la mesure ou il n'y aurait que deux cas possibles, créer un formulaire pour chaque cas. Pour réaliser le choix, je créerais une boite de dialogue dans le Normal.dotm avec lancement de la macro dans la barre d'accès rapide. La validation ouvrirait le bon formulaire. Cette solution ne convient pas si elle doit être implantée sur plusieurs postes utilisateurs.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2019
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour Eric,

    Merci pour ces 2 pistes, je vais regarder du côté des objets Quickpart car en effet l'autre solution n'est pas idéale, je dois pouvoir transmettre le fichier à d'autres utilisateurs.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2019
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Eric,

    J'ai regardé pour les objets Quickpart mais malheureusement je n'ai pas pu y intégrer de champs.
    Je suis preneur pour toutes autres solutions.

    Merci.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sam092 Voir le message
    Il vous faut partir de votre formulaire avec vos deux paragraphes contenant tous vos champs. Vous sélectionnez chacun des paragraphes et vous créez vos objets à partir de la sélection en cours. Je pense que cela devrait fonctionner.
    Pièce jointe 501994

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2019
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    J'ai avancé sur ma problématique.
    J'ai fait le code suivant :
    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
    22
    23
    24
     
    Sub MaMacro()
     
    If ActiveDocument.ProtectionType <> wdNoProtection Then
    ActiveDocument.Unprotect "test"
    End If
     
    Select Case ActiveDocument.FormFields("MaListeDeroulante").Result
     
    Case "choix1"
    ActiveDocument.Bookmarks("signet1").Range.Font.Hidden = True
    ActiveDocument.Bookmarks("signet2").Range.Font.Hidden = False
     
    Case "choix2"
    ActiveDocument.Bookmarks("signet2").Range.Font.Hidden = True
    ActiveDocument.Bookmarks("signet1").Range.Font.Hidden = False
     
    End Select
     
    If ActiveDocument.ProtectionType = wdNoProtection Then
    ActiveDocument.Protect wdAllowOnlyFormFields, noreset, "test"
    End If
     
    End Sub
    Tout fonctionne bien, sauf le calcul en sortie de liste déroulante (j'ai mis la macro dans la liste déroulante avec calcul en sortie).
    En effet, pour que les modifications sur les signets soient effectives, il faut absolument tabuler.
    Hors, il peut arriver que quelqu'un sorte de la liste déroulante en cliquant à l'extérieur et dans ce cas le calcul en sortie ne se fait pas.

    Pouvez-vous m'aider pour que le calcul en sortie s'effectue quelque soit la façon de quitter la liste déroulante?

    D'avance merci.

    Sam.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sam092 Voir le message
    Bonjour,

    Je ne vois pas du tout comment votre document est organisé. Les événements sont gérés dans la partie ThisDocument. Mettez un fichier en ligne si vous souhaitez qu'on regarde.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2019
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    J’ai créé une liste déroulante à partir des formulaires hérités.
    Dans cette liste déroulante j’ai demandé à exécuter ma macro à la sortie.
    Ma macro est dans un module et non dans ThisDocument.
    Sam.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sam092 Voir le message
    Si votre liste déroulante est un contrôle Active X directement dans le document et non dans un Userform, les événements applicables à l'objet sont dans la partie ThisDocument.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2019
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour Eric,
    Ma liste déroulante n’est pas un contrôle activex mais fait partie des éléments hérité.
    Sam.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sam092 Voir le message
    Désolé, je ne peux pas vous aider.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2019
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Je suis toujours à la recherche d'une solution.
    Si vous avez des idées, n'hésitez pas

    Merci.

    Sam.

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/05/2017, 10h39
  2. Réponses: 5
    Dernier message: 16/05/2007, 18h53
  3. Créer une Liste déroulante.
    Par ox@na dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/10/2006, 16h00
  4. [VB6]Créer une liste déroulante dans une dataGrid
    Par mcay dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/05/2006, 10h32
  5. Réponses: 3
    Dernier message: 20/02/2006, 19h32

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