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 :

Remplir une liste déroulante avec le contenu de plusieurs textbox (I) [WD-2013]


Sujet :

Word

  1. #1
    Futur Membre du Club
    Femme Profil pro
    en activité
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : en activité

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Remplir une liste déroulante avec le contenu de plusieurs textbox (I)
    Bonjour,

    Je débute avec les macros word et j'aimerai savoir s'il est possible de remplir une liste déroulante à partir de plusieurs "textbox1, textbox2..."
    J'ai utilisé une ListeDer "formulaire hérité".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        For I = 1 To 21
                If I > 20 Then Exit For
                With ActiveDocument.FormFields("ListeDer").DropDown.ListEntries
                    .Add ActiveDocument.FormFields("textbox" & I)
                End With
        Next I
    Je n'ai probablement pas saisi qque chose car dans ma liste déroulante, j'ai n fois 70 ! oups...

    Merci par avance pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    70 correspond au type :
    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
     
    Sub CompterLesControles()
     
    Dim I As Integer
    Dim DocEnCours As Document
     
        Set DocEnCours = ActiveDocument
        With DocEnCours
     
             If .FormFields.Count = 0 Then Exit Sub
     
                Debug.Print "Nombre de champs : " & .FormFields.Count
     
             For I = 1 To .FormFields.Count
                 With .FormFields(I)
                      Debug.Print "Nom : " & .Name & ", type : " & .Type
                 End With
             Next I
     
        End With
        Set DocEnCours = Nothing
     
    End Sub
    Pourquoi cherchez-vous à remplir cette liste par cette méthode ?

  3. #3
    Futur Membre du Club
    Femme Profil pro
    en activité
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : en activité

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Je voulais savoir comment s'y prendre pour peupler une liste déroulante, à partir des informations saisies dans les "textbox".
    Ensuite, l'idée est de pouvoir choisir une adresse de la liste déroulante constituée pour la réutiliser dans le document.

    Merci pour votre réponse. Je vais essayer et reviendrai donner le résultat.

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

    Le plus simple serait d'importer une table depuis Excel.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    en activité
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : en activité

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Je comprends, mais je ne sais pas encore faire cela et je n'ai que 20 occurrences pour la liste déroulante.
    C'est un peu basic comme solution. Cela dit, l'import d'excel m'intéresse aussi, pour "l'exercice", car il n'est exclu d'en avoir l'utilité prochainement.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par loofok Voir le message
    Sinon, regardez ce billet dans mon blog où je montre comment utiliser la collection Variables pour stocker des données. https://www.developpez.net/forums/bl...document-word/

  7. #7
    Futur Membre du Club
    Femme Profil pro
    en activité
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : en activité

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bonjour
    Ah oui... je vais devoir m'y plonger ! Je reviendrai donner le résultat.
    En tout cas, merci pour l'aide.

  8. #8
    Futur Membre du Club
    Femme Profil pro
    en activité
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : en activité

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bonjour

    Je reviens, car j'ai trouvé comment peupler une zone de liste déroulante "formulaire hérité.
    C'est basique mais cela répond à mon problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        For I = 1 To 21
            If I > 20 Then Exit For
            wMail2 = ActiveDocument.FormFields("Mail" & I).Result
            If wMail2 <> "" Then
                With ActiveDocument.FormFields("ListeD2").DropDown.ListEntries
                    .Add wMail2
                End With
            End If
        Next I
    Il me reste la 2ème partie à faire : choisir une valeur de la liste et alimenter un champ
    En l'occurence, c'est une adresse mail à mettre dans un champ texte ou envoyer un mail avec.

    Merci Eric pour ton aide... je vais voir pour les liens avec excel et l'utilisation d'une variable à lire.
    nb : je garde ce post ouvert pour la 2ème partie de mon problème.

  9. #9
    Futur Membre du Club
    Femme Profil pro
    en activité
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : en activité

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    2ème partie de mon problème : alimenter un contrôle de contenu que j'identifie par sa balise, à partir d'une valeur saisie

    Pour le moment je suis bloquée sur l'ajout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    wMail3 = InputBox("Veuillez saisir une adresse mail...", "Adresse e-mail", "votre e-mail", vbOKCancel)
            If wMail3 <> "" Then
               msgbox "l'adresse mail saisie est " & wMail3
               Set wCC = ActiveDocument.SelectContentControlsByTag("mailmodif")
               wCC.DropDown.ListEntries.Add = wMail3
            End If

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par loofok Voir le message
    Bonsoir,

    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
    25
     
    Sub Test()
     
    Dim wMail3 As String
    Dim Wcc As FormField
    Dim I As Integer
     
        With ActiveDocument
             wMail3 = InputBox("Veuillez saisir une adresse mail...", "Adresse e-mail", "votre e-mail", vbOKCancel)
            If wMail3 <> "" Then
               Set Wcc = .FormFields("mailmodif")
               MsgBox "l'adresse mail saisie est " & wMail3
               With Wcc
                  .DropDown.ListEntries.Add Name:=wMail3
     
                  For I = 1 To .DropDown.ListEntries.Count
                      Debug.Print .DropDown.ListEntries(I).Name
                  Next I
     
               End With
               Set Wcc = Nothing
            End If
        End With
     
    End Sub

  11. #11
    Futur Membre du Club
    Femme Profil pro
    en activité
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : en activité

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Merci pour votre aide. J'obtiens bien le résultat attendu.

    Mon erreur provenait du type de contrôle choisi "contrôle de contenu" au lieu de "liste déroulante modifiable

    C'est résolu !

  12. #12

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/11/2009, 15h14
  2. Remplir une liste déroulante avec PHP
    Par beegees dans le forum Langage
    Réponses: 3
    Dernier message: 16/03/2009, 11h51
  3. [AJAX] Remplir une liste déroulante avec la réponse du réquête d'Ajax
    Par duppp2000 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/12/2007, 16h28
  4. Comment remplir une liste déroulante avec une macro sans doublons
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/06/2007, 18h34
  5. [Oracle] Remplir une liste déroulante avec une table
    Par CYCLOPE91440 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 26/12/2006, 15h26

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