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

VBA Word Discussion :

Boutons radio, variables et champs Word [WD-2010]


Sujet :

VBA Word

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Par défaut Boutons radio, variables et champs Word
    Bonjour à tous,

    J'ai un formulaire en ouverture de Word avec 4 boutons radio (lié par un GroupName identique) et le fait de cocher un bouton va déterminer 2 variables.
    Ensuite j'affiche ces 2 variables séparément dans Word via l'insertion d'un champ "DOCVARIABLE".

    Voici comment j'ai codé cela :
    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
    ' Mes variables
    Dim Variable1 As String
    Dim Variable1 As String
     
    ' Affectation des valeurs suivant le choix du bouton
    If Me.OptionButton_B1 = True Then
        Variable1 = 11
        Variable2 = 12
    ElseIf Me.OptionButton_B2 = True Then
        Variable1 = 21
        Variable2 = 22
    ElseIf Me.OptionButton_B3 = True Then
        Variable1 = 31
        Variable2 = 32
    ElseIf Me.OptionButton_B4 = True Then
        Variable1 = 41
        Variable2 = 42
    End If
     
    ' Insertion de la variable dans Word via le champ DOCVARIABLE
    ActiveDocument.Variables.Add ("CHOIX1"), Value:=Variable1
    ActiveDocument.Variables.Add ("CHOIX2"), Value:=Variable2
    Ensuite dans Word j'insère les champs suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {DOCVARIABLE "CHOIX1" \* MERGEFORMAT}
    {DOCVARIABLE "CHOIX2" \* MERGEFORMAT}
    Malheureusement les champs restent vides.
    Pourriez-vous me dire où est la faute dans le code svp ?

    Merci par avance !

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Premier problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Variable1 As String
    Et tu lui attribue un nombre

    Dans cette ligne,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Variables.Add ("CHOIX1"), Value:=Variable1
    pourquoi seul un des deux arguments est-il nommé ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    activedocument.Variables.Add Name:="", Value:=""
    On accède au contrôle non pas par Me par mais par activedocument

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    activedocument.OptionButton3
    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 !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Par défaut
    Bonjour,

    Merci pour cette réponse.

    Repartons sur de bonnes bases :
    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
    ' Mes variables
    Dim Variable1 As String
    Dim Variable1 As String
     
    ' Affectation des valeurs suivant le choix du bouton
    If Me.OptionButton_B1 = True Then
        Variable1 = "AB"
        Variable2 = "CD"
    ElseIf Me.OptionButton_B2 = True Then
        Variable1 = "EF"
        Variable2 = "GH"
    ElseIf Me.OptionButton_B3 = True Then
        Variable1 = "IJ"
        Variable2 = "KL"
    ElseIf Me.OptionButton_B4 = True Then
        Variable1 = "MN"
        Variable2 = "OP"
    End If
     
    ' Insertion de la variable dans Word via le champ DOCVARIABLE
    ActiveDocument.Variables.Add Name:="CHOIX1", Value:="Variable1"
    ActiveDocument.Variables.Add Name:="CHOIX2", Value:="Variable2"
    Pour le problème du "activedocument", n'est-il pas possible de le définir au départ par un "Me" pour raccourcir le code ? car il y a vraiment beaucoup de "activedocument" dans le fichier...

    Et pour en revenir au coeur du problème, malheureusement ces changements ne résolvent pas le problème.
    Le message d'erreur est : "erreur d'éxecution 5903, Le nom de la variable existe déjà"

    Avez-vous une idée ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Il y a une instruction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ActiveDocument
       If .OptionButton1 .....
     
    End With
    Mais on peut très bien utiliser une variable, mais pas me qui est un mot réservé.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim myd As Document
     
    set myD = ActiveDocument
     
    myD.Optionbutton
    Pour le message d'erreur
    Le message d'erreur est : "erreur d'éxecution 5903, Le nom de la variable existe déjà"
    C'est la première fois que tu en parles.

    Si la variable de document existe déjà, on ne peut en créer une identique, il faut simplement lui attribuer une valeur.

    Donc, tu dois teste la variable, si elle existe, lui attribuer une valeur, si ce n'est pas le cas, la créer.
    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 !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Par défaut
    Merci pour cette réponse.

    Pour le activedocument... c'est à placer dans quelle fonction svp ?

    Ensuite, pour mon problème d'affectation de valeur aux variables : je ne trouve vraiment pas le problème. Existe-t-il un moyen d'avoir un listing de toutes les déclarations qui ont été faites dans le projet ?

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Pour la variable, c'est dans ton code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Variables.Add Name:="CHOIX1", Value:="Variable1"
    Si tu fais fonctionner deux fois ce code, à la première fois, la variable est créée, à la seconde, comme elle existe déjà, ton code lève une erreur.

    http://heureuxoli.developpez.com/office/word/variables/

    Pour le activedocument... c'est à placer dans quelle fonction svp ?
    Comme tu ne donnes pas de fonction, je suis un peu perdu par ta question.
    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 !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/01/2012, 10h14
  2. [PHP 5.3] Génération de boutons radios et de champs texte
    Par beegees dans le forum Langage
    Réponses: 7
    Dernier message: 22/05/2010, 15h40
  3. Réponses: 3
    Dernier message: 09/03/2006, 20h38
  4. Masquer un champ si un bouton radio est cocher
    Par 12_darte_12 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 22/02/2006, 16h49
  5. [Javascript] Masquer un champ si un bouton radio est cocher
    Par 12_darte_12 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/02/2006, 15h52

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