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 :

Une nouvelle énigme !


Sujet :

VBA Word

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Par défaut Une nouvelle énigme !
    Bonjour, comme vous pouvez le constater, la programmation sous VBA Word devient ma grande passion. Et voici qu'un nouveau problème se pose à moi.
    J'ai 2 champs dans un .doc
    Le 1er est une liste déroulante de 4 éléments. Le second correspond à une seconde liste déroulante de 4 éléments aussi, chacun correspondant à un item de la première liste. Je souhaite automatiser le tout pour que qd je fasse mon choix dans le premier champ, l'item lui correspond dans le 2nd champ se remplisse en auto.
    J'ai tenté bêtement un IF Then dans "This Document" mais je dois faire une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub CopierLieu1()
    If
    ActiveDocument.FormFields("ListeDéroulante3").Result = Brive
    Then
    ActiveDocument.FormFields("Texte556").Result = 30 Rue du Gral LECLERC
    End Sub
    ---> Erreur synthaxe
    Peut on intégrer des Ifs Then dans une macro de ce type? faut il recourir à une userform?

  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
    Dans ta vérification, tu compares le résultat à une variable qui n'est pas déclarée.

    Word VBA compare Brive à une Variable qui aurait dû être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Brive As String
     
    Brive = "Une texte"
    Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveDocument.FormFields("ListeDéroulante3").Result = "Brive"
    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 averti
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Par défaut Pb de synthaxe
    Rebonjour,
    En appliquant le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub CopierLieu1()
     
    If
    ActiveDocument.FormFields("ListeDéroulante3").Result = "Brive"
    Then
    ActiveDocument.FormFields("Texte3").Result = "Rue du Gral leclerc"
    End Sub
    en macro de sortie de la liste déroulante3, il ne se passe rien , et word affiche "erreur de synthaxe" en surlignant le If quand je veux cliquer sur le texte 3.

  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
    Tout doit être sur la même ligne dans ce cas précis.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If TestLogique Then Action
    ou alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If TestLogique Then
        Action 1
    Else
        Action 2
    End If
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If TestLogique Then
        Action 1
    Else if TestLogique Then
        Action 2
    Else
        ....
    End If
    On peut aussi utiliser un Case Select

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Select Case ActiveDocument.FormFields("ListeDéroulante3").Result
    Case "Brive"
        Action 1
    Case "Paris"
        Action 2
    Case Else
        Pour les éventuels oublis
    End Select
    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 averti
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Par défaut
    Merci pour cette réponse complète. Malheuresment j'obtiens le message d'érreur " La commande a échoué" (pas terrible pour retrouver l'erreur).
    Voici le code erroné:

    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
     
    Sub CopierLieu()
     
     
    Select Case ActiveDocument.FormFields("ListeDéroulante3").Result
    Case "Brive"
        ActiveDocument.FormFields("Texte3").Result = "Rue du Gral leclerc"
     
    Case "Cholet"
        ActiveDocument.FormFields("Texte3").Result = "Rue Alfred"
    Case "Laval"
        ActiveDocument.FormFields("Texte3").Result = "Rue gérard"
        Case "Colombes"
        ActiveDocument.FormFields("Texte3").Result = "Rue jacques"
    End Select
    End Sub
    Quelle pourrait être l'erreur? Merci

  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
    Je ne sais pas, si tu pouvais nous donner une copie de ton document !
    Je ne parviens pas à reproduire l'erreur.
    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: 2
    Dernier message: 02/02/2008, 22h00
  2. Kernel Panic après ajout d'une nouvelle partition
    Par GLDavid dans le forum Administration système
    Réponses: 6
    Dernier message: 25/06/2004, 16h47
  3. Réponses: 3
    Dernier message: 17/06/2004, 16h59
  4. Réponses: 2
    Dernier message: 03/02/2004, 21h56
  5. [VB6] Ouverture d'une nouvelle fenêtre dans un MDI
    Par pepper dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 17/02/2003, 14h03

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