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 :

Valeur initiale d'un signet sous word [Toutes versions]


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Points : 12
    Points
    12
    Par défaut Valeur initiale d'un signet sous word
    Bonjour,

    je n'arrive pas à trouver la manière de tester la valeur par défaut d'un signet de forme text dans une macro.

    Dans mon document, je veux que certains signets soient obligatoirement renseignés par un usager. Donc je souhaite que si le signet n'est pas rempli, il y ait un retour msgbox et que le signet soit sélectionné.

    J'ai testé cela mais cela ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        If ActiveDocument.Bookmarks("Nom").Empty = False Then
          MsgBox "Vous devez renseigner le grade du personnel.", vbOKOnly
          ThisDocument.Bookmarks("Nom").Select
    j'ai aussi testé cela mais même résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        If ThisDocument.Bookmarks("Nom").Range.Text = "" Then
          MsgBox "Vous devez renseigner le nom du personnel.", vbOKOnly
          ActiveDocument.Bookmarks("Nom").Select
    En fait, je crois que le problème vient de mon test de la première ligne car la valeur par défaut d'un signet ne semble pas être vide mais je n'arrive pas à la définir.
    Merci d'avance pour le coup de main

  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 : 59
    Localisation : Belgique

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

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

    Pour récupérer le contenu d'un signet, c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Bookmarks("Monsignet").Range.text
    Dans ton code, tu fais un test, essaie de faire d'autres tests avant, comme la longueur de la chaîne, et afficher son contenu par un MsgBox.

    Maintenant, si tu pouvais nous mettre un morceau de ton document, ce serait probablement plus clair.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Points : 12
    Points
    12
    Par défaut Précision
    je met en ligne une partie de mon futur formulaire.

    Donc dans la première ligne du premier tableau, il y a quatre signets nommés "Grade", "nom", "prenom", "ID". Cette ligne doit obligatoirement être remplie intégralement. Le problème étant que le nombre de caractères n'est pas un bon critère car il n'est pas fixe.

    Pour la gue-guerre du thisdocument contre activedocument, les deux donnent le même résultat mais avec thisdocument, on a la certitude que c'est bien le document où la macro est intégrée qui est impacté.
    Fichiers attachés Fichiers attachés

  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 : 59
    Localisation : Belgique

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

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

    Ce ne sont pas des signets mais des champs de formulaires.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.FormFields("MonChamp").Result
    Même si ces champs possèdent des signets, il est de loin préférable d'utiliser les FormFields.
    Le signet est intéressant pour un renvoi ou une autre opération avec des champs.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Je te remercie, ça fonctionnerait.

    L'écriture de cette ligne comme ceci fonctionne aussi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisDocument.FormFields("Grade").Result = ""
    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 : 59
    Localisation : Belgique

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

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


    Le tout est de voir.
    ThisDocument fonctionne, mais fait référence à la classe document et pas au document.
    ActiveDocument fait référence au document courant.
    Docments(1) ou Documents("MonDoc.Doc") à un document précis.

    Perso, j'évite l'utilisation de ThisDocument

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

Discussions similaires

  1. Affecter une valeur à un variable sous Excel et la réutiliser sous word
    Par Kestion100 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/04/2014, 01h11
  2. [Débutant] [VBA sous Word] Retrouver les valeurs de CheckBox
    Par grovallat dans le forum VB.NET
    Réponses: 3
    Dernier message: 20/07/2012, 08h42
  3. [Toutes versions] Copier valeurs dernière ligne vers signet word
    Par 8e8eClo dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/12/2011, 10h35
  4. Réponses: 1
    Dernier message: 18/06/2009, 11h41
  5. Signet sous Word.
    Par Kramelix dans le forum VB.NET
    Réponses: 1
    Dernier message: 20/11/2007, 08h28

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