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 :

Arguments nommés ou pas


Sujet :

VBA Word

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut Arguments nommés ou pas
    Bonjour,

    Ma question n'est pas bloquante car ma macro marche, c'est juste pour me perfectionner un peu en VB, j'ai crus comprendre qu'on pouvais appeler une fonction de deux facon, soit en mettant les argument entre parenthèse, soit en les nommant.

    J'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveDocument.Range(deb, fin).Select
    ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:=signet
    Comment appeler la fonction Add sans nommer les arguments ?

    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveDocument.Range(deb, fin).Select
    ActiveDocument.Bookmarks.Add (signet,selection.Range)
    J'obtiens une erreur de compil, pourtant dans l'aide en ligne j'ai trouvé :
    expression.Add(Name, Range)
    expression Obligatoire. Expression qui renvoie un objet Bookmarks.

    Name Argument de type String obligatoire. Nom du signet. Il ne doit comporter qu'un seul mot.

    Range Argument de type Variant facultatif. Plage de texte repérée par le signet. Il est possible d'insérer un signet dans une plage réduite (le point d'insertion).
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  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
    Les parenthèses sont utilisée lorque l'on souhaite un résultat.
    On ne met pas les parenthèse quand on ne souhaite pas de résultat.

    Les nommer permet de ne pas respecter l'ordre des arguments.
    Si tu ne nomes pas les arguments, il faut respecter l'ordre.
    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
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    J'ai pas trop compris ton histoire de résultat.

    Pour l'ordre des argument, ca j'avais compris, justement dans mon exemple, la doc indique 2 argument, le premier obligatoire (Name) et le second facultatif (Range).

    Pourquoi n'accepte t-il pas ma version avec parenthèse ?
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  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
    Pour le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oTbl = ActiveDocument.Tables.Add(Range:=Selection.Range, NumRows:=2, Numcolumns:=3)
    On a besoin d'un résultat, puisque qu'on a l'opérateur d'affectation =

    Alors que si j'ajoute simplement une table ce sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, Numcolumns:=3
    Mais pour l'ajout d'un Bookmark, le nom n'est pas facultatif.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Bookmarks.Add Name:="Signet01"
    C'est le minimum à mettre.

    Si on ne met rien d'autre, il signet sera inséré ou se trouve le curseur.
    On peut le mettre à une autre endroit, mais alors il faut définir le Range (plage) où il sera inséré.
    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
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Ma question étais sur la forme d'appel pourquoi l'appel de la fonction Add ne marche pas avec les parenthèses (sans nommer les arguments)
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    On peut pas faire :

    ActiveDocument.Bookmarks.Add ("Signet01") ?
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  7. #7
    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
    Tu auras une erreur.

    Jette un oeil ici
    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 !

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Ok, merci

    En fait je voulais appeler la fonction sans nommer les argument, je comprenais pas pourquoi ca fonctionnais pas

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Bookmarks.Add signet, Selection.Range
    et ca fonctionne

    Merci pour le lien
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

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

Discussions similaires

  1. au moins l'un des arguments ne peut pas être marshalé
    Par thierry007 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/05/2015, 13h16
  2. [XL-2000] Argument nommé non trouvé
    Par lilli1407 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/10/2009, 17h38
  3. argument nommé introuvable
    Par manue22 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/11/2007, 11h43
  4. AllowFormattingCells : Argument nommé introuvable
    Par greg64 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/10/2007, 16h30
  5. [MySQL] Argument utile ou pas ?
    Par pc.bertineau dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/02/2007, 11h19

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