OVH Cloud OVH Cloud

MACRO à l'ouverture

7 réponses
Avatar
Michel
Hello !!

j'ai une macro ci-dessous ou je voudrait que chaque fois qu'un
utilisateur ouvre ce modèle *.dot, le système lui renvoie le message
suivant:

N'oubliez pas d'envoyer ce formulaire avant la fin de la journée

j'ai fait alt-F11, collé ceci , mais quand je lance le formulaire cela
ne marche pas, faut-il lui donner un nom particulier ???


Private Sub Workbook_Open()
MsgBox "N'oubliez pas d'envoyer ce formulaire avant la fin de la
journée"
End Sub

merci

Michel
:-@

--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net

7 réponses

Avatar
Circé
Bonjour,

Il faut que tu nommes ta macro Autonew.

Circé
http://faqword.free.fr

Il se trouve que Michel a formulé :
Hello !!

j'ai une macro ci-dessous ou je voudrait que chaque fois qu'un utilisateur
ouvre ce modèle *.dot, le système lui renvoie le message suivant:

N'oubliez pas d'envoyer ce formulaire avant la fin de la journée

j'ai fait alt-F11, collé ceci , mais quand je lance le formulaire cela ne
marche pas, faut-il lui donner un nom particulier ???


Private Sub Workbook_Open()
MsgBox "N'oubliez pas d'envoyer ce formulaire avant la fin de la journée"
End Sub

merci

Michel
:-@


Avatar
Jean-Guy Marcil
Michel was telling us:
Michel nous racontait que :

Hello !!

j'ai une macro ci-dessous ou je voudrait que chaque fois qu'un
utilisateur ouvre ce modèle *.dot, le système lui renvoie le message
suivant:

N'oubliez pas d'envoyer ce formulaire avant la fin de la journée

j'ai fait alt-F11, collé ceci , mais quand je lance le formulaire cela
ne marche pas, faut-il lui donner un nom particulier ???


Private Sub Workbook_Open()
MsgBox "N'oubliez pas d'envoyer ce formulaire avant la fin de la
journée"
End Sub


Où as-tu copié ce code? (Dans quel module?)

Workbook fait référence à un classeur Excel.
Est-ce une macro dans Word ou dans Excel?

Si Word, il faut utiliser Document_Open et placer cette routine dans le
module ThisDocument.
Pour Excel, le placer dans ThisWorkbook.

--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org

Avatar
Anacoluthe
Bonjour !


j'ai une macro ci-dessous ou je voudrait que chaque fois qu'un
utilisateur ouvre ce modèle *.dot



'Jean-Guy Marcil' nous a écrit ...
Si Word, il faut utiliser Document_Open et placer cette routine dans le
module ThisDocument.


Pour préciser les réponses également justes de Jean-Guy et Circé :
Document_Open concerne effectivement l' /ouverture/ de votre modèle
comme vous l'avez vous-même demandé.
Or dans Word un modèle sert surtout à créer de /nouveaux/ documents.
Si vous utilisez votre modèle en tant que tel, Document_Open ne vous
servira probablement à rien. Voyez alors la réponse de Circé.

Anacoluthe
« Toujours voir au-delà du modèle. »
- Eugène DELACROIX


Avatar
Jean-Guy Marcil
Anacoluthe was telling us:
Anacoluthe nous racontait que :

Bonjour !


j'ai une macro ci-dessous ou je voudrait que chaque fois qu'un
utilisateur ouvre ce modèle *.dot



'Jean-Guy Marcil' nous a écrit ...
Si Word, il faut utiliser Document_Open et placer cette routine dans
le module ThisDocument.


Pour préciser les réponses également justes de Jean-Guy et Circé :
Document_Open concerne effectivement l' /ouverture/ de votre modèle
comme vous l'avez vous-même demandé.
Or dans Word un modèle sert surtout à créer de /nouveaux/ documents.
Si vous utilisez votre modèle en tant que tel, Document_Open ne vous
servira probablement à rien. Voyez alors la réponse de Circé.



Ou, si le code est nécessaire à la création *et* à l'ouverture, on peut
faire ceci:

Dans le module ThisDocument:
'_______________________________________
Private Sub Document_New()

MainSub "Création de document"

End Sub
'_______________________________________

'_______________________________________
Private Sub Document_Open()

MainSub "Ouverture de document"

End Sub
'_______________________________________

'_______________________________________
Sub MainSub(infoStr As String)

MsgBox infoStr

End Sub
'_______________________________________


Si le code à exécuter est identique dans les deux cas:
'_______________________________________
Private Sub Document_New()

MainSub

End Sub
'_______________________________________

'_______________________________________
Private Sub Document_Open()

MainSub

End Sub
'_______________________________________

'_______________________________________
Sub MainSub()

MsgBox "Document créé ou ouvert"

End Sub
'_______________________________________

--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org



Avatar
Anacoluthe
Bonjour !

'Jean-Guy Marcil' nous a écrit ...
Ou, si le code est nécessaire à la création *et* à l'ouverture, on peut faire...


Avec ça, y'en aura pour tous les goûts !!!
Tu veux pas nous donner aussi tous les événements Application
tant que tu es si bien lancé, Jean-Guy ??? :-D ))))))

Anacoluthe
« Le bonheur tient aux événements, la félicité tient aux affections. »
- Napoléon BONAPARTE

Avatar
Jean-Guy Marcil
Anacoluthe was telling us:
Anacoluthe nous racontait que :

Bonjour !

'Jean-Guy Marcil' nous a écrit ...
Ou, si le code est nécessaire à la création *et* à l'ouverture, on
peut faire...


Avec ça, y'en aura pour tous les goûts !!!
Tu veux pas nous donner aussi tous les événements Application
tant que tu es si bien lancé, Jean-Guy ??? :-D ))))))


Bien sûr:

Depuis Word 97:
Private Sub Document_Close()

End Sub

Private Sub Document_New()

End Sub

Private Sub Document_Open()

End Sub

Et, depuis Word 2003:
Private Sub Document_Sync(ByVal SyncEventType As Office.MsoSyncEventType)

End Sub

Private Sub Document_XMLAfterInsert(ByVal NewXMLNode As XMLNode, ByVal
InUndoRedo As Boolean)

End Sub

Private Sub Document_XMLBeforeDelete(ByVal DeletedRange As Range, ByVal
OldXMLNode As XMLNode, ByVal InUndoRedo As Boolean)

End Sub

Pour les autres événements, comme "BeforePrint, BeforeQuit, etc., il faut
les créer soi-même avec un module de classe car ils ne sont pas inclus par
défaut. Il y un article KB là-dessus, mais je ne le trouve pas en
français...
Pour ceux qui peuvent lire en anglais, il y a un article intéressant sur le
sujet sur le site anglophne des MVP Word:
http://word.mvps.org/faqs/macrosvba/AppClassEvents.htm

--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org


Avatar
Michel
merci à tous !!!!!!!!!!!!!

Michel :-)


Jean-Guy Marcil vient de nous annoncer :
Anacoluthe was telling us:
Anacoluthe nous racontait que :

Bonjour !

'Jean-Guy Marcil' nous a écrit ...
Ou, si le code est nécessaire à la création *et* à l'ouverture, on
peut faire...


Avec ça, y'en aura pour tous les goûts !!!
Tu veux pas nous donner aussi tous les événements Application
tant que tu es si bien lancé, Jean-Guy ??? :-D ))))))


Bien sûr:

Depuis Word 97:
Private Sub Document_Close()

End Sub

Private Sub Document_New()

End Sub

Private Sub Document_Open()

End Sub

Et, depuis Word 2003:
Private Sub Document_Sync(ByVal SyncEventType As Office.MsoSyncEventType)

End Sub

Private Sub Document_XMLAfterInsert(ByVal NewXMLNode As XMLNode, ByVal
InUndoRedo As Boolean)

End Sub

Private Sub Document_XMLBeforeDelete(ByVal DeletedRange As Range, ByVal
OldXMLNode As XMLNode, ByVal InUndoRedo As Boolean)

End Sub

Pour les autres événements, comme "BeforePrint, BeforeQuit, etc., il faut les
créer soi-même avec un module de classe car ils ne sont pas inclus par
défaut. Il y un article KB là-dessus, mais je ne le trouve pas en français...
Pour ceux qui peuvent lire en anglais, il y a un article intéressant sur le
sujet sur le site anglophne des MVP Word:
http://word.mvps.org/faqs/macrosvba/AppClassEvents.htm



--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net