|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : août 2006 Messages : 163 ![]() |
Bonjour,
Ça fait quelques années que je n'ai pas participé aux forums, mais j'ai néanmoins gardé un œil sur le site, et c'est avec plaisir que je me remets à un petit développement et par conséquent que je vais solliciter vos compétences et votre gentillesse. J'ai un formulaire dans un tableau, dans la première colonne un champ liste déroulante, dans la seconde un champ texte normal. Lorsque je récupère le contenu des cellules, il n'y a pas de problème pour le champ texte, mais pour le champ liste déroulante de la première colonne, j'ai un petit carré au lieu du contenu. J'ai tenté de récupérer le résultat du champ dans la cellule mais sans succès, j'obtiens le message "Erreur de compilation, Membre de méthode ou de données introuvables". Voici le premier code qui me renvoie un petit carré : Code :
Debug.Print ActiveDocument.Tables(1).Cell(x, y).Range.text Code :
Debug.Print ActiveDocument.Tables(1).Cell(x, y).FormFields.Result J'ai bien trouvé comment récupérer le résultat du champ mais pas lorsqu'il est dans un tableau. Je vous remercie par avance pour votre aide, toujours précieuse ! Bonne journée, JMarc |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
Ton souhait serait de prélever un contenu de cellule pour le mettre comme résultat dans une liste déroulante ? En général, on remplit la liste déroulante pour permettre de faire un choix. Mais un petit problème c'est qu'une cellule de tableau contient autre chose que du texte. Je te propose une petite expérience ! Mesure la longueur d'un texte contenu dans une cellule, tu verras que le texte contient deux caractères supplémentaires. Il faut éliminer ces caractères, pour ne pas devoir le faire à chaque fois, j'utilise une fonction netText qui renvoie un string.
__________________
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 ! |
|
|
00
|
|
|
#3 | ||
|
Membre habitué
![]() Inscription : août 2006 Messages : 163 ![]() |
Bonjour Olivier et merci pour ta réponse.
Citation:
Citation:
Merci encore ! JMarc |
||
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
si ta liste déroulante est un champ de formulaire, c'est bien result qu'il faut utiliser, mais ton code n'est pas bon. Code :
Debug.Print ActiveDocument.FormFields(3).Result
__________________
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 ! |
|
|
00
|
|
|
#5 | |||
|
Membre habitué
![]() Inscription : août 2006 Messages : 163 ![]() |
Citation:
Dans ton code, sauf si je comprends pas bien, je vais récupérer les résultats les uns à la suite des autres. Sachant que j'ai dans mon formulaire, plusieurs tableaux (5 pour le moment), dont le nombre de colonne est variable. Peut-être que mon code sera plus parlant, sachant que ce n'est qu'une approche car j'apprends au fur et à mesure. Code :
|
|||
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
Ça ne change rien, que le formfield soit dans le document ou dans une table. Code :
ActiveDocument.FormFields("MaListe").Result
__________________
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 ! |
|
|
00
|
|
|
#7 | ||||
|
Membre habitué
![]() Inscription : août 2006 Messages : 163 ![]() |
En fait, tout au début, j'avais fait ça :
Code :
Code :
Merci à toi ! JMarc |
||||
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
Tous les formfields ont par défaut un nom. Et si le nom ne convient pas, on peut le changer.
__________________
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 ! |
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() Inscription : août 2006 Messages : 163 ![]() |
Bonjour Olivier,
J'ai voulu être simple dans l'exposé de mon problème, mais du coup, je n'ai pas tout dit... Mon document est composé de plusieurs tableaux (5 à ce jour), et les utilisateurs vont cliquer sur des boutons pour ajouter des lignes dans ces tableaux par le biais de code VBA, mais dans chaque nouvelle ligne sera inséré de nouveaux formfields dont le nom est généré automatiquement. Puis-je déduire de ton précédent message que je pourrais, lors de la génération des nouveaux formfields, leur attribuer un nom que je pourrais contrôler ? comme par exemple FfTab1.xx, xx s'incrémentant automatiquement ??? Merci de ton aide. JMarc |
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Inscription : août 2006 Messages : 163 ![]() |
Bonjour,
En posant mes questions et en utilisant vos (enfin, tes réponses Olivier), j'ai fini par trouver une solution. L'erreur que je faisais, était de vouloir récupérer les contenus des cellules des tableaux et non les formfields. Donc, je compte le nombre de lignes et de colonnes de chaque tableau et je fais des boucles qui vont aux bons endroits. Merci pour ton aide Olivier ! ![]() Bon WE JMarc |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com