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 :

[WORD 2003] Problémes avec visual Basic sous Word


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut [WORD 2003] Problémes avec visual Basic sous Word
    Bonjour à tous et merci d'avance pour vos réponses,

    Je suis très ennuyé par Visual Basic sous word voilà après avoir réussi a remplir mes combobox, je pensais être sorti d'affaires mais non.

    J'aimerai que mes clients lorsqu'il ouvrent le document Word aient directement accès aux liste de choix.

    Mais a chaque fois que j'ouvre le document word les listes sont vide malgré le code dans Visual Basic.

    Merci d'avance de votre aide.

    Voici mon code :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Sub Auto_Open()
     
    End Sub
    Sub civi_Change()
     
    civi.AddItem "Mlle"
    civi.AddItem "Mme"
    civi.AddItem "Mr"
     
    End Sub
     
    Sub club_Change()
     
    club.AddItem "Club Med Gym - formule Base"
    club.AddItem "Club Med Gym - formule Club"
    club.AddItem "Club Med Gym - formule Waou"
     
    club.AddItem "Vit 'Halles - formule Club"
    club.AddItem "Vit 'Halles - formule Privilége"
    club.AddItem "Vit 'Halles - Carte à points Attitude"
     
    club.AddItem "Les Cercles de la Forme - formule Club"
     
    club.AddItem "Country Club Chatillon - formule Club"
     
    club.AddItem "ForestHill - formule Pacha"
    club.AddItem "ForestHill - formule Pacha Reconduction"
     
     
    club.AddItem "L 'Usine - formule Club"
    club.AddItem "Lady Fitness - formule Club"
    club.AddItem "Energie Forme - formule Club"
    club.AddItem "Magic Forme - formule Club"
     
    End Sub
     
    Sub liens_Change()
     
    liens.AddItem "Concubin"
    liens.AddItem "Conjoint"
    liens.AddItem "Vie Maritale"
     
    End Sub
     
     
    End Sub

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Tes listes se situent où ?

    Un document, un UserForm...

    De toute façon il est vain de remplir une liste sur son évènement Change.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Salut,

    Mes listes se situent dans un document word.doc

    Merci pour ta réponse.

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    C'est probablement pas la méthode à utiliser.

    Essaye avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add "Moi"
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add "Toi"

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    J'ai mis le code suivant mais Word 2003 plante à chaque fois je ne suis vraiment pas doué. Devant rendre le formulaire demain matin je sens que ma nuit s'annonce longue.

    Voici le code que j'ai écrit dans visual basic.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub civi()
     
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add "Mlle"
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add "Mme"
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add "Mr"
     
     
    End Sub
    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
    23
    24
    25
    26
    27
    Sub club
     
     
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " Club Med Gym - formule Base "
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " Club Med Gym - formule Club "
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " Club Med Gym - formule Waou "
     
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " Vit 'Halles - formule Club "
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " Vit 'Halles - formule Privilége "
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " Vit 'Halles - Carte à points Attitude "
     
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " Les Cercles de la Forme - formule Club "
     
     
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " Country Club Chatillon - formule Club "
     
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " ForestHill - formule Pacha "
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " ForestHill - formule Pacha Reconduction "
     
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " L 'Usine - formule Club "
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " Lady Fitness - formule Club "
     
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " Energie Forme - formule Club "
     
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " Energie Magic Forme - formule Club "
     
    End Sub



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub liens ()
     
     
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " Concubin "
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " Conjoint "
    ActiveDocument.FormFields(1).DropDown.ListEntries.Add " Vie Maritale "
     
     
     
    End Sub

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Petites Explications

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.FormFields(1)
    Correspond au premier champ de formulaire du document.

    Si ton premier champ de formulaire n'est pas une liste déroulante, Word plante et c'est normal.

    Tu peux si tu préfère utiliser le nom de ton champ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.FormFields("MaListe").DropDonw.ListEntries.Add "Mon entrée"
    Maintenant, on peut faire plus court

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ActiveDocument.FormFields("MaLIste").DropDown.ListEntries
       .Add "Mon Elément 1"
       .Add "Mon Elément 2"
    End With
    Donc ton code devrait ressembler à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub PeuplerListe()
    With ActiveDocument.FormFields("MaListe1").DropDown.ListEntries
        .Add "Item 1"
        .Add "Item 2"
    End With
    With ActiveDocument.FormFields("MaListe2").DropDown.ListEntries
        .Add "Item 01"
        .Add "Item 02"
    End With
    With ActiveDocument.FormFields("MaListe3").DropDown.ListEntries
        .Add "Item 001"
        .Add "Item 002"
    End With
    End Sub
    Mais tu ne dois pas oublier de vider la liste avant de la remplir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.FormFields("MaListe1").DropDown.ListEntries.Delete

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Je comprends bien le principe du code mais il me sort erreur de compilation erreur de syntaxe maintenant.

    J'ai Visual Basic 6.3 et j'avoue m'arracher un peu les cheveux. Ou alors c'est moi qui suis vraiment idiot.

    Voici ou j'en suis


    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
    23
    24
    25
     
     
     
    Sub inscription()
     
    With
    ActiveDocument.FormFields("liens").DropDown.ListEntries.Delete
    ActiveDocument.FormFields("liens").DropDown.ListEntries.Add "Conjoint"
    ActiveDocument.FormFields("liens").DropDown.ListEntries.Add "Concubin"
    ActiveDocument.FormFields("liens").DropDown.ListEntries.Add "Vie Maritale"
    End With
     
    With
    ActiveDocument.FormFields("club").DropDown.ListEntries.Delete
    ActiveDocument.FormFields("club").DropDown.ListEntries.Add "Item 01"
    ActiveDocument.FormFields("club").DropDown.ListEntries.Add "Item 02"
    End With
     
    With
    ActiveDocument.FormFields("civi").DropDown.ListEntries.Delete
    ActiveDocument.FormFields("civi").DropDown.ListEntries.Add "Mlle"
    ActiveDocument.FormFields("civi").DropDown.ListEntries.Add "Mme"
    ActiveDocument.FormFields("civi").DropDown.ListEntries "Mr"
    End With
    End Sub

  8. #8
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Le code que j'ai donné fonctionne pour le VBA de Word.

    Ne connaissant pas Visual Basic, je ne peux pas te dire pourquoi ça coince.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup de ton aide en tout cas.

    Si seulement tout était aussi simple que PHP ou XHTML.

    Armand

  10. #10
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    VBA est très simple.

    Pourquoi passes-tu par Visual Basic ?

    Si tu mets tout dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sub Document_Open()
    ou dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sub Document_New()
    Ça se produit quand même.

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Ca me fait la même erreur : "Erreur de syntaxe"

    C'est moi qui doit être le problème je crois,

    Il n'a pas l'air d'aimer l'argument With car l'erreur de syntaxe se trouve a ce niveau selon le débogeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Document_New()
    With
    ActiveDocument.FormFields("liens").DropDown.ListEntries.Delete
    ActiveDocument.FormFields("liens").DropDown.ListEntries.Add "Conjoint"
    ActiveDocument.FormFields("liens").DropDown.ListEntries.Add "Concubin"
    ActiveDocument.FormFields("liens").DropDown.ListEntries.Add "Vie Maritale"
    End With

  12. #12
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Je n'ai pas fait attention !

    Le With, il porte sur rien !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Document_New()
    With ActiveDocument.FormFields("liens").DropDown.ListEntries
       .Delete
       .Add "Conjoint"
       .Add "Concubin"
       .Add "Vie Maritale"
    End With
    End Sub

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Je pense qu'on va y arriver

    J'ai modifié mais la il me sort un nouvelle erreur membre de méthode ou de données introuvable.

    Pourtant je comprendre le codage et sa logique mais la ça me depasse

    Je t'ai fait un imprim-écran ci-dessous.

    http://img196.imageshack.us/img196/1567/errorlyq.jpg

    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
     
    Sub Document_Open()
     
    With ActiveDocument.FormFields("liens").DropDown.ListEntries.Delete
    ActiveDocument.FormFields("liens").DropDown.ListEntries.Add "Conjoint"
    ActiveDocument.FormFields("liens").DropDown.ListEntries.Add "Concubin"
    ActiveDocument.FormFields("liens").DropDown.ListEntries.Add "Vie Maritale"
    End With
     
    With ActiveDocument.FormFields("club").DropDown.ListEntries.Delete
    ActiveDocument.FormFields("club").DropDown.ListEntries.Add "Item 01"
    ActiveDocument.FormFields("club").DropDown.ListEntries.Add "Item 02"
    End With
     
    With ActiveDocument.FormFields("civi").DropDown.ListEntries.Delete
    ActiveDocument.FormFields("civi").DropDown.ListEntries.Add "Mlle"
    ActiveDocument.FormFields("civi").DropDown.ListEntries.Add "Mme"
    ActiveDocument.FormFields("civi").DropDown.ListEntries "Mr"
    End With
    End Sub

  14. #14
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,


    Moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub Document_New()
    With ActiveDocument.FormFields("liens").DropDown.ListEntries
       .Delete
       .Add "Conjoint"
       .Add "Concubin"
       .Add "Vie Maritale"
    End With
    End Sub
    Toi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With ActiveDocument.FormFields("liens").DropDown.ListEntries.Delete
    ActiveDocument.FormFields("liens").DropDown.ListEntries.Add "Conjoint"
    ActiveDocument.FormFields("liens").DropDown.ListEntries.Add "Concubin"
    ActiveDocument.FormFields("liens").DropDown.ListEntries.Add "Vie Maritale"
    End With
    Je pense que tu as des choses en trop.


    Pour exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    objet.methode1(arg1)
    objet.methode2(arg2)
    objet.methode3(arg3)
    Peut être écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With objet
       .methode1(arg1)
       .methode2(arg2)
       .methode3(arg3)
    End With

  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    J'ai repris ton code, mais arriver à l'argument .Delete j'ai une erreur de syntaxe.

  16. #16
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    J'ai fait sans tester, je me suis trompé c'est Clear et pas delete.

Discussions similaires

  1. [Débutant] Problème avec visual basic express 2010
    Par Bylliboy dans le forum VB.NET
    Réponses: 5
    Dernier message: 19/05/2014, 17h09
  2. Réponses: 1
    Dernier message: 06/04/2009, 10h19
  3. Problème - Impression sous Word 2003
    Par kip dans le forum Word
    Réponses: 6
    Dernier message: 29/11/2007, 13h43
  4. Réponses: 3
    Dernier message: 12/09/2006, 05h54
  5. Réponses: 5
    Dernier message: 12/06/2006, 09h31

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