Créer une macro globale
SunIsShining
-
eriiic Messages postés 25847 Statut Contributeur -
eriiic Messages postés 25847 Statut Contributeur -
Bonjour,
J'aimerai créer une macro dans un module mais qui sois à portée globale. C'est à dire que je la créé dans un moduleA mais que je puisse l'apeller de n'importe quel module. Voici ma macro :
Public Sub afficher(nomSignet As String)
ActiveDocument.Bookmarks(nomSignet).Range.Font.Hidden = False
End Sub
J'ai des macros dans un moduleB de ce type :
Sub afficher_bonjour()
afficher("bonjour")
End Sub
Mais le programme ne reconnait pas "afficher" dans ce module (pourtant je l'ai mis en public ^^). Même dans un formulaire, lorsque j'apelle la macro afficher elle n'est pas trouvée. Pourtant quand je créé une donnée en Public (par exemple une constante) je peux bien la rapeller dans d'autres modules.
Peut-être faut-il placer ma fonction "afficher" ailleurs pour la rendre globale ?
Pourriez-vous m'aider s'il vous plaît ^^, ?
J'aimerai créer une macro dans un module mais qui sois à portée globale. C'est à dire que je la créé dans un moduleA mais que je puisse l'apeller de n'importe quel module. Voici ma macro :
Public Sub afficher(nomSignet As String)
ActiveDocument.Bookmarks(nomSignet).Range.Font.Hidden = False
End Sub
J'ai des macros dans un moduleB de ce type :
Sub afficher_bonjour()
afficher("bonjour")
End Sub
Mais le programme ne reconnait pas "afficher" dans ce module (pourtant je l'ai mis en public ^^). Même dans un formulaire, lorsque j'apelle la macro afficher elle n'est pas trouvée. Pourtant quand je créé une donnée en Public (par exemple une constante) je peux bien la rapeller dans d'autres modules.
Peut-être faut-il placer ma fonction "afficher" ailleurs pour la rendre globale ?
Pourriez-vous m'aider s'il vous plaît ^^, ?
A voir également:
- Créer une macro globale
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Créer une adresse hotmail - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Créer un lien pour partager des photos - Guide
Et tu restes dans le même document ?
ActiveDocument.Bookmarks(nomSignet).Range.Font.Hidden = False
End Sub )
et bien si je créé une macro dans moduleA et que j'écrit afficher(" , ça me suggère directement de rentrer nomSignet. Tandis que si je le fais dans moduleB, en écrivant afficher(" il n'y a aucune suggestion, donc la fonction n'est pas reconnue. J'ai quand même essayé d'écrire dans moduleB une macro :
Sub afficher_nom()
afficher("nom")
End Sub
Mais ça ne marche pas, la fonction "afficher" n'est pas trouvée.
Il n'y a qu'en pas à pas (F8) ou bien en mettant un Stop en début de la 2nde macro que tu peux affirmer cela.
mais je ne vois pas pourquoi ActiveDocument.Bookmarks(nomSignet).Range.Font.Hidden = False t'ouvrerai une boite de dialogue pour le créer. Bon, je ne connais pas bien vba word, admettons
Soit le signet est existant et il fait, soit il n'existe pas et j'imagine plus une erreur vba.
Tu devrais déposer ton fichier (cjoint.com), et une lecture pour toi :
https://www.commentcamarche.net/contents/1381-debogage