Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA 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 23/06/2008, 21h16   #1
Invité de passage
 
Étudiant
Inscription : juin 2008
Messages : 4
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2008
Messages : 4
Points : 0
Points : 0
Par défaut Automatisation du remplissage des champs d'un formulaire

Bonsoir.
Je suis nouveau sur le forum et j'ai découvert VBA aujourd'hui...
Je dois faire une macro une qui remplit les champs d'un formulaire word à partir d'une sélection effectuée au préalable dans une liste déroulante.
Exemple: dans ma liste déroulante il y a les noms d'une dizaine de personnes.
Je choisit la personne xxxx, le programme doit alors renseigner le champ concernant l'entreprise dans laquelle bosse xxxx, le lieu ou se trouve cette entreprise,etc...
Ces champs ne doivent plus être modifiables manuellement après.

J'ai essayé de faire une macro à partir d'un tuto Microsoft (comme je l'ai ditje débute totalement en VBA),http://support.microsoft.com/kb/212190/fr

Ca donne ça (évidemment ça ne marche pas):

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
Sub remplissage()
 
Dim DropResult1 As String 
Dim DropResult2 As String
Dim DropResult3 As String
Dim DropResult4 As String
Dim DropResult5 As String
Dim NomSoustraitant As String
 
    ActiveDocument.Unprotect
 
 
    NomSoustraitant = ActiveDocument.FormFields("ListeDeroulante2").Result
 
        Select Case (NomSoustraitant) 
 
 
       Case NomSoustraitant = "xxxx"
 
        DropResult1 = "exploitant individuel"
        DropResult2 = "....................."
        DropResult3 = "....................."
        DropResult4 = "La Rochelle "
        DropResult5 = "....................."
 
        With Selection
 
 
        .GoTo What:=wdGoToBookmark, Name:="champ_1" 'nom du signet ou doit s'afficher dropset1
        .InsertAfter DropResult1
        .Range.InsertAutoText
 
de même pour les autres champs...
 
 
       Case else
       msgbox "error"
 
 ...
Merci d'avance à ceux qui m'apporteront leur aide.
[Rand] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 23h26   #2
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 356
Points : 3 356
Par défaut Le même post est en cours

Salut,

Il faut regarder le forum , il y a déjà une discussion en cours dans ce même forum http://www.developpez.net/forums/sho...d.php?t=570759, Heureux-Oli a déjà bien répondu
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 13h19   #3
Invité de passage
 
Étudiant
Inscription : juin 2008
Messages : 4
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2008
Messages : 4
Points : 0
Points : 0
Hum, pas tout à fait,j'ai du mal m'exprimer...
Je travaille sur un seul document word (formulaire avec des champs créés grâce à la barre d'outils), et je n'ai ni tableau ni base de donnée ni quoi que soit ou sont recensés les infos à caser.
Concrètement, au début du formulaire il doit y avoir un paragraphe qui a cette tête là:

"Monsieur[liste déroulante] agissant en la qualité de [champ1], représentant la société [champ2] dénommée [champ3],etc..."

le choix du gars se fait donc via la liste déroulante, et la macro complète "le texte à trous" (les champs, qui ensuite ne doivent plus bouger)

Il n'y a que 6/7 choix dans la liste déroulante, (les sous traitants avec lesquels la boite dans laquelle je fais mon stage bosse à l'année); c'est pour ça que je pensais faire quelque chose dans l'esprit du "code" que j'ai proposé ( il doit il y avoir des pb de syntaxes et des choses qui manquent)....

EDIT: j'ai trouvé
[Rand] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 19h14   #4
Invité de passage
 
Étudiant
Inscription : juin 2008
Messages : 4
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2008
Messages : 4
Points : 0
Points : 0
Bon j'aurais encore une ou deux questions: comment faire en sorte que ma macro s'exécute dès le lancement du fichier ?
Comment faire en sorte que ma macro se réexécute très régulièrement pour mettre les différents champs à jour si l'utilisateur change de choix dans la liste déroulante ?
Merci d'avance
[Rand] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 21h28   #5
Responsable Word

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

Pour qu'une macro s'exécute au lancement d'un fichier, il suffit de l'appeler

dans la faq :http://word.developpez.com/faq/?page...macroevenement

On peut sur l'évènement sortie du champ liste déroulante lancer une macro, c'est dans les propriétés du champ.

MAis pour ce genre de manipulation, il est beaucoup plus facile d'utiliser un UserForm.
__________________
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 24/06/2008, 22h10   #6
Invité de passage
 
Étudiant
Inscription : juin 2008
Messages : 4
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2008
Messages : 4
Points : 0
Points : 0
Citation:
Envoyé par Heureux-oli Voir le message

MAis pour ce genre de manipulation, il est beaucoup plus facile d'utiliser un UserForm.
Et comment on s'y prendrait dans ce cas stp ?
[Rand] 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 03h23.


 
 
 
 
Partenaires

Hébergement Web