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

Word Discussion :

INsertion de données à partir d'une ListBox d'un UserForm à des signets dans un document word


Sujet :

Word

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Information Manager
    Inscrit en
    Septembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Information Manager
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2017
    Messages : 9
    Points : 5
    Points
    5
    Par défaut INsertion de données à partir d'une ListBox d'un UserForm à des signets dans un document word
    Bonjour,
    J'ai une ListBox dans un UserForm que me servira à remplir un document Word. Cette ListBox contient des données (items, disons qu'il y en a 4) que l'utilisateur va sélectionner, le nombre variant au gré des besoins. Ces données seront alors insérées dans le document Word dans des signets.
    Cas 1: Si l'utilisateur sélectionne juste l'item 1, ce dernier ira logiquement au signet 1.
    Cas 2: Si l'utilisateur sélectionne juste l'item 2, celui ira logiquement au signet 1.
    Cas 3: Si l'utilisateur sélectionne les items 1 et 2, l'item 1 ira au signet 1 et l'item 2 ira au signet 2.
    Cas 4: Si l'utilisateur sélectionne les items 1 et 4, l'item 1 ira au signet 1 et l'item 4 ira au signet 2.
    Cas 5: Si l'utilisateur sélectionne les items 1, 2 et 3, l'item 1 ira au signet 1, l'item 2 ira au signet 2 et l'item 3 ira au signet 3.
    Cas 6 : Si l'utilisateur sélectionne les items 1, 2 et 4, l'item 1 ira au signet 1, l'item 2 ira au signet 2 et l'item 4 ira au signet 3.
    Etc ....
    Comment puis-je faire pour prévoir tous les cas de sélection et définir leur insertion au signets appropriés? Pour l'instant, j'ai procédé au cas par cas. Je veux dire que j'ai prévu de Case Is = sélection(s) mais avec 7 items dans ma ListBox, cela rends la programmation fastidieuse et le script trop long.

    Merci de votre contribution.

    P.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 376
    Points : 596
    Points
    596
    Par défaut
    Bonjour,

    Commence par nommer tes signets dans l'ordre de tes items de ta listbox : signet1, signet2, signet3, etc.

    Pour le code, quelque chose comme ça (supposant que tu as un bouton de commande):

    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
    Private Sub CommandButton1_Click()
    Dim i, x
    Dim s_range As Range
    For i = 0 To ListBox1.ListCount - 1
    x = i + 1
    Set s_range = ActiveDocument.Bookmarks("signet" & x).Range
            If ListBox1.Selected(i) = True Then
                s-range.Text = ListBox1.List(i)
                Else
                s_range.Text = ""
     
            End If
        ActiveDocument.Bookmarks.Add "signet" & x, s_range
    Next i
    End Sub
    Ce code vide le signet si l'item de la listbox correspondante n'est pas sélectionné.

    m@rina

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Information Manager
    Inscrit en
    Septembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Information Manager
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2017
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    bonjour m@rina,

    Merci de ton input. Je te joins mon document pour que tu puisse avoir une idée. Il s'agit d'un modèle permettant de créer, à partir d'un interface, n'importe que document officiel du service. J'ai travaillé par ListBox. La principale énumère les documents possibles, les autres les différentes options pour chaque document. Une fois un document sélectionné dans la ListBox initiale, un cadre correspondant s'ouvre pour permettre à l'utilisateur de sélectionner les parties de document il veut utiliser. Chaque partie est un BuildingBlock dans le template. Je ne sais pas si je me suis clairement exprimé. D'où le document join.
    Je suppose que ta programmation devra être inséré dans chaque "Case Is" référant au document à produire.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 376
    Points : 596
    Points
    596
    Par défaut
    Bonjour,

    Ton fichier joint est un txt par un doc Word.

    m@rina

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Information Manager
    Inscrit en
    Septembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Information Manager
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2017
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Oui, je sais. malheureusement, le site ne permet pas de charger des dotm. Désolé. Voici le document en version docx. Je ne sais pas si tu/vous peut/pouvez en faire quelque chose. Il montre que le template original contient 11 signets, nommés EVTBookMark01 à 11. Lorsque certains BuildingBlocks sont insérés, ils peuvent contenir des signets supplémentaires. Ces signets supplémentaires sont appelés du nom du signet devant recevoir le BuildingBlock, suivi de la lettre a, b, c, .... tout cela est visible dans le code illustré dans le document .txt.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [Toutes versions] Récupérer des informations dans un document word par vba à partir d'un signet
    Par sellig60 dans le forum VBA Word
    Réponses: 4
    Dernier message: 08/09/2013, 20h32
  2. insertion de signets dans un document word code vb.net
    Par mohamedt dans le forum VB.NET
    Réponses: 4
    Dernier message: 25/09/2011, 03h40
  3. Réponses: 5
    Dernier message: 11/02/2010, 23h41

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