Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word
Word Forum d'entraide sur le traitement de texte Microsoft Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/03/2008, 20h01   #1
Invité de passage
 
Inscription : mars 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 34
Points : 3
Points : 3
Par défaut Liste déroulante de plus de 25 éléments

Bonjour à tous ,
Je dois créer un formulaire avec une liste déroulante de plus de 25 items. Ceci n'est pas possible dans l'option basique. Par contre il est possible de le faire sous Word grâce à une ptite macro décrite dans le support word:
http://support.microsoft.com/kb/306258/fr
Le problème: je n'arrive pas à la faire marcher.
Est ce que qqun a déjà réussi à faire une telle liste ?
Vous me seriez d'une très grande aide !
Merci merci !!!
Nico
Smurf94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2008, 20h45   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Juste un exemple similaire peut-être plus simple

Code :
1
2
3
4
5
6
Private Sub UserForm_Initialize()
Dim i As Byte
For i = 1 To 40
    Me.ComboBox1.AddItem "a" & i
Next i
End Sub
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2008, 10h12   #3
Invité de passage
 
Inscription : mars 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 34
Points : 3
Points : 3
Par défaut Membre de collection

Merci pour ta réponse !
Cependant j'ai finalement réussi à créer ma liste avec le support Word ( création d'une ListBox).Voici mon code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Cmdclose_Click()
  Unload Me
End Sub
 
Private Sub ListBox1_Change()
   ActiveDocument.FormFields("Text1").Result = ListBox1.Value (Jaune)
End Sub
 
Private Sub UserForm_Initialize()
  ListBox1.ColumnCount = 1
  'Load data into ComboBox
  ListBox1.List() = Array("Zero", "One", "Two", "Three")
End Sub
Quand je veux éditer le formulaire, j'ai bien l'interface de la macro avec la liste mais quand je veux choisir un item j'obtiens:
'Erreur d'execution 5941: Le membre de la collection n'existe pas.' Le débobage surligne la ligne ActivateDocument.... Comment puis-je "créer" ces membres de collection. En vous remerciant énormément !
Nico
Smurf94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2008, 15h39   #4
Invité de passage
 
Inscription : mars 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 34
Points : 3
Points : 3
Par défaut Définition des items

J'avoue que je cale toujours, impossible de cliquer sur ces items sans buger. Dans ta solution Oli, comment définis-tu chacun des items de la liste ??
Merci pour ton aide.
Smurf94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2008, 15h54   #5
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
La solution que je donne est pour un UserForm et pas un formulaire.

Les items que j'ajoute sont issu de la boucle, pour en faire 40, je fais une boucle de 1 à 40, et je concatène le résultat avec une lettre.

A1; A2; ...

Si je refait ton cheminement, voilà ce que j'obtiens

Code :
1
2
3
4
5
Private Sub ComboBox1_Change()
ActiveDocument.FormFields(1).Result = Me.ComboBox1.Value
UserForm1.Hide
 
End Sub

Code :
1
2
3
4
Private Sub UserForm_Initialize()
Me.ComboBox1.List() = Array("Un", "Deux", "Trois")
 
End Sub
Le document doit être protégé, je ne'ai pas mis de contrôle mais on pourrais le faire.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2008, 11h12   #6
Invité de passage
 
Inscription : mars 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 34
Points : 3
Points : 3
Par défaut Création des membres de la collection

Merci oli, ta solution marche. Mais malheuresement mon problème reste le même: quand je veux selectionner "un" , "deux" ou "trois" dans la liste, le message d'erreur m'affirme que les membres de la collection n'existe pas. Est ce que le fait d'écrire
ListBox.Liste = Array (".......)
ne fait que créer une liste sans matérialiser ses éléments ? dois-je les déclarer qqpart d'autres? je suis un peu perdu
En te remerciant. Nicolas
Smurf94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2008, 11h24   #7
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Tout fonctionnait.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2008, 12h42   #8
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Voilà un exemple.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2008, 16h14   #9
Invité de passage
 
Inscription : mars 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 34
Points : 3
Points : 3
Par défaut Merci

Merci énormément pour l'exemple, je faisais ma userform dans un template projet. Cependant 2 remarques:
- Est-il possible de trouver une solution pour que l'utilisateur puisse resaisir sa réponse ? (ce qui n'est pas le cas actuellement)
- Est-il possible de passer cette macro dans un formulaire comme je souhaitais le faire (mon but étant de faire remplir ce formulaire à un nombre conséquent de personne, les .dot permettent de garder un formulaire sans réponse après utilisation)

Encore merci pour ton aide qui m'est précieuse.
Nicolas
Smurf94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2008, 16h33   #10
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Jette un oeil ici si ce n'est déjà fait
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2008, 15h52   #11
Invité de passage
 
Inscription : mars 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 34
Points : 3
Points : 3
Par défaut Liste non ouverte à l'écriture

Merci une fois de plus, ton lien explique clairement la différence entre formulaire et userform. J'ai abandonné l'idée de créer mon sondage avec un formulaire et le fais dans un .doc avec une userform.
Je touche au but et la liste déroulante ouverte (combobox c'est à dire qu'on peut choisir dans une liste ou écrire autre chose) marche. Par contre quand je veux créer une liste fermée (ListBox) le choix de l'item me renvoit 'La commande a échouée ; Erreur 4198' . Voici mon code qui n'est que le copier coller du tien appliqué à la ListBox:
Code :
1
2
3
4
5
6
Option Explicit
Private Sub ListBox1_Change()
ActiveDocument.FormFields("Texte2").Result = Me.ListBox1.Value
Fournisseurs.Hide
 
End Sub
Code :
1
2
3
4
Private Sub UserForm_Initialize()
Me.ListBox1.List() = Array("Un", "Deux", "Trois")
 
End Sub
As tu une quelconque idée du problème? Encore merci!
Smurf94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h35.


 
 
 
 
Partenaires

Hébergement Web