Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/01/2008, 15h00   #1
Membre éclairé
 
Inscription : décembre 2007
Messages : 426
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 426
Points : 313
Points : 313
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 :
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 :
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é :
Citation:
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).
Eric93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 15h16   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 360
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 360
Points : 29 280
Points : 29 280
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 15h34   #3
Membre éclairé
 
Inscription : décembre 2007
Messages : 426
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 426
Points : 313
Points : 313
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 ?
Eric93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 16h02   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 360
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 360
Points : 29 280
Points : 29 280
Pour le résultat :
Code :
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 :
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, Numcolumns:=3
Mais pour l'ajout d'un Bookmark, le nom n'est pas facultatif.

Code :
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 16h22   #5
Membre éclairé
 
Inscription : décembre 2007
Messages : 426
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 426
Points : 313
Points : 313
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)
Eric93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 16h55   #6
Membre éclairé
 
Inscription : décembre 2007
Messages : 426
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 426
Points : 313
Points : 313
On peut pas faire :

ActiveDocument.Bookmarks.Add ("Signet01") ?
Eric93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 17h09   #7
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 360
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 360
Points : 29 280
Points : 29 280
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 11h06   #8
Membre éclairé
 
Inscription : décembre 2007
Messages : 426
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 426
Points : 313
Points : 313
Ok, merci

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

J'ai essayé
Code :
ActiveDocument.Bookmarks.Add signet, Selection.Range
et ca fonctionne

Merci pour le lien
Eric93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h24.


 
 
 
 
Partenaires

Hébergement Web