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 24/02/2011, 17h12   #1
Invité de passage
 
Christian GARNIER
Inscription : février 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Christian GARNIER

Informations forums :
Inscription : février 2011
Messages : 4
Points : 1
Points : 1
Par défaut Listes déroulantes liées

Bonjour à tous,

J'ai trouvé sur la toile une macro écrite par Heureux-oli. Cette macro correspond bien à mes besoins.
Je souhaite créer un formulaire avec plusieurs listes déroulantes liées 2 par 2. J'ai donc préparé un formulaire de test avec les listes déroulantes 1 avec 2 et 3 avec 4.
Dans la liste 1 j'ai entré les valeurs "1", "2" et "3".
Dans la liste 3 j'ai entré les valeurs "Beetle", "Canon", "Compaq" et "Dell".
Voici donc les macros.

Code :
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Sub Test()
    With ActiveDocument.FormFields(2).DropDown
        .ListEntries.Clear
    End With
 
Select Case ActiveDocument.FormFields(1).Result
Case "1"
    With ActiveDocument.FormFields(2).DropDown
        .ListEntries.Add "1 avec Un"
        .ListEntries.Add "1 avec deux"
        .ListEntries.Add "1 avec trois"
    End With
Case "2"
    With ActiveDocument.FormFields(2).DropDown
        .ListEntries.Add "2 avec Un"
        .ListEntries.Add "2 avec deux"
        .ListEntries.Add "2 avec trois"
    End With
Case "3"
    With ActiveDocument.FormFields(2).DropDown
        .ListEntries.Add "3 avec Un"
        .ListEntries.Add "3 avec deux"
        .ListEntries.Add "3 avec trois"
    End With
End Select
 
End Sub
Sub PwdMarque()
With ActiveDocument.FormFields(4).DropDown
        .ListEntries.Clear
    End With
 
Select Case ActiveDocument.FormFields(3).Result
Case "Beetle"
    With ActiveDocument.FormFields(4).DropDown
        .ListEntries.Add "M II"
    End With
Case "Canon"
    With ActiveDocument.FormFields(4).DropDown
        .ListEntries.Add "Scanfront 220"
     End With
Case "Compaq"
    With ActiveDocument.FormFields(4).DropDown
        .ListEntries.Add "Evo D500"
        .ListEntries.Add "Evo D510 SFF"
        .ListEntries.Add "Evo NC6000"
        .ListEntries.Add "DeskPro"
        .ListEntries.Add "Workstation"
    End With
Case "Dell"
    With ActiveDocument.FormFields(4).DropDown
        .ListEntries.Add "FX 160"
        .ListEntries.Add "Latitude D420"
        .ListEntries.Add "Latitude D430"
        .ListEntries.Add "Latitude D610"
        .ListEntries.Add "Latitude D620"
        .ListEntries.Add "Latitude D630"
        .ListEntries.Add "Latitude E4300"
        .ListEntries.Add "Latitude E4310"
        .ListEntries.Add "Latitude E5400"
        .ListEntries.Add "Latitude E6400"
        .ListEntries.Add "Latitude E4300"
        .ListEntries.Add "Latitude E4310"
        .ListEntries.Add "Latitude E5400"
        .ListEntries.Add "Latitude E5410"
        .ListEntries.Add "Latitude E6400"
        .ListEntries.Add "Latitude E6410"
        .ListEntries.Add "Optiplex 740"
        .ListEntries.Add "Optiplex 780"
        .ListEntries.Add "Workstation"
    End With
    End Select
 
End Sub
Le problème, c'est que l'exécution est très lente et que la modification de la liste déroulante 2 ne se fait qu'après celle de la 4. Et en plus, il faut s'y prendre plusieurs fois avant que le bon résultat s'affiche.

Est-il possible de multiplier les couples de listes déroulantes autant de fois que besoin dans un formulaire ?
Est-ce qu'il y a une erreur de syntaxe dans les macros ?

Merci pour votre aide.

Cordialement.

Cilor.
cilor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 17h39   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 322
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 322
Points : 29 220
Points : 29 220
Salut,

je ne vois pas ce qui coince, j'ai repris ton code et je l'ai utilisé dans un document, je ne rencontre pas de problème de lenteur ou de mise à jour.
Fichiers attachés
Type de fichier : zip fldcasca.zip (17,5 Ko, 5 affichages)
__________________
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 25/02/2011, 14h48   #3
Invité de passage
 
Christian GARNIER
Inscription : février 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Christian GARNIER

Informations forums :
Inscription : février 2011
Messages : 4
Points : 1
Points : 1
Bonjour,

Tout d'abord merci pour ta réponse.

Effectivement, je viens de tester ton fichier et il ne se comporte pas comme le mien.
J'ai constater quelque chose de bizarre :
Quand je crée d'abord le formulaire avec les listes et puis ensuite les macros, ne fonctionnent pas correctement. Par contre je viens juste de faire l'inverse, c'est à dire créer les macros et après seulement insérer les listes déroulantes dans le formulaire, ça fonctionne parfaitement bien.

Dernière question, Y a t-il un nombre maximum de macro par feuille à respecter ?


Cordialement.

Cilor.
cilor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 16h26   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 322
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 322
Points : 29 220
Points : 29 220
Salut,
Citation:
Envoyé par cilor Voir le message
Dernière question, Y a t-il un nombre maximum de macro par feuille à respecter ?
J'en ai aucune idée !
__________________
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 28/02/2011, 08h08   #5
Invité de passage
 
Christian GARNIER
Inscription : février 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Christian GARNIER

Informations forums :
Inscription : février 2011
Messages : 4
Points : 1
Points : 1
Bonjour,

Je crois que mon problème vient du fait de l'identification de la liste. Est-il possible de donner un nom à chaque liste déroulante et comment faire ?

Ainsi au lieu d'avoir

Code :
ActiveDocument.FormFields(2)

on pourrait avoir

Code :
ActiveDocument.FormFields(toto)
toto étant le nom donné à la liste déroulante. Ce qui faciliterait la lecture de la macro et permettrait des modifications plus aisées.


Cordialement.


Cilor.
cilor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 09h40   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 322
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 322
Points : 29 220
Points : 29 220
Salut,

toto étant un String, il faut des " de chaque côté.
Mais c'est tout à fait possible.
__________________
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 10
Vieux 28/02/2011, 13h35   #7
Invité de passage
 
Christian GARNIER
Inscription : février 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Christian GARNIER

Informations forums :
Inscription : février 2011
Messages : 4
Points : 1
Points : 1
Ca y est, ça fonctionne . J'ai lu les docs que tu m'as indiquées et j'ai trouvé ce que je cherchais . Je n'ai pas tout compris mais j'ai téléchargé la version PDF et je vais étudier cela à tête reposée. Peut-être ( même surement) cela me permettra d'améliorer encore plus mon formulaire .

Cordialement.

Cilor.
cilor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 02h45   #8
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 377
Points : 3 377
Salut Cilor,

Si ton sujet est fini, n'oublie pas de cliquer sur , ça permet aux autres DVPnautes de savoir qu'il y a une solution (pas toujours avec une issue positive d'ailleurs) à ce fil.

@+
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h43.


 
 
 
 
Partenaires

Hébergement Web