Choisir une macro en fonction de la messagerie présente sur

Bonjour,

Comment choisir une macro en fonction de la messagerie présente sur le PC, Lotus Notes ou Outlook

Sachant que chaque PC à soit LOTUSNOTES, soit OUTLOOK

J'ai 2 macros :

Mail_LOTUS qui génére un mail compatible avec LOTUSNOTES

Mail_OUTLOOK qui génére un mail compatible avec OUTLOOK

Comment écrire le code de la macro EnvoiMail ?

Sub EnvoiMail()

Trouver quelle type de messagerie est présente : Lotus Notes ou Outlook

Si LOTUS

Lancer la macro Mail_LOTUS

Si OUTLOOK

Lancer la macro Mail_OUTLOOK

End Sub

Merci pour votre aide

Philippe

Bonjour

essaie ceci

Sub aargh()
    On Error Resume Next
    h = Shell("outlook.exe")
    If h <> 0 Then
        'outlook'
    Else
        'Lotus notes'
    End If
End Sub

Hello,

Merci, mais j'ai changer de technique, car on risque d'avoir les 2 messagerie en même temps

Alors j'ai créé une celleule de sélection, la Q10 ou 2 sélections sont possibles OUTLOOK ou LOTUS NOTES

Voici ma macro, mais j'ai une erreur :

Erreur de compilation : Variable ou procédure, et non un module ......

Help Merci

Sub EnvoiMail()

 If Sheets("Journal du projet").Range("Q10") = "OUTLOOK" Then Run Mail_OUTLOOK 'Macro qui génère le mail pour OUTLOOK
 If Sheets("Journal du projet").Range("Q10") = "LOTUS NOTES" Then Run Mail_LOTUS_NOTES 'Macro qui génère le mail pour LOTUS NOTES

   End If

End Sub

bonjour

essaie ainsi

Sub EnvoiMail()

If Sheets("Journal du projet").Range("Q10") = "OUTLOOK" Then Mail_OUTLOOK 'Macro qui génère le mail pour OUTLOOK
If Sheets("Journal du projet").Range("Q10") = "LOTUS NOTES" Then Mail_LOTUS_NOTES 'Macro qui génère le mail pour LOTUS NOTES

End If

End Sub

Merci mais avec Call, Run ou rien ..... toujours la même erreur Pas facile

bonjour,

mets-nous ton fichier

Je ne peux pas il est énorme et il il contient des données sensibles .....

Mais je me suis peut être mal exprimé,

Sur la feuille "journal du Projet" la cellule Q10 que j'ai renommé "Type_Messagerie" à 2 choix possibles "OUTLOOK" et "LOTUS NOTES"

Si lorsque je clique sur les bontons envoyer un mail, la cellule Q10 contient le texte "OUTLOOK", le mail sera généré par la macro "Mail_OUTLOOK" et si Q10 contient le texte "LOTUS NOTES", le mail sera généré par la macro "Mail_LOTUS_NOTES"

Si par erreur la messagerie selectionnée n'existe pas sur le PC, une messagebox doit s'ouvrir en indiquant à l'utilisateur de selectionner la bonne messagerie

Toutes les macro sont dans des modules et il y a un bouton "Envoyer mail" sur plusieurs feuilles

En espérant être compris, je vous remercie pour votre aide

Philippe

Bonjour,

Si tu utilises la syntaxe du If sur une ligne

If blabla then blabla

pas de endif à mettre, c'est une erreur

eric

re-Bonjour,

ceci fonctionne chez moi.

Sub aargh()
With Sheets("Journal du projet")
If .Range("Q10") = "OUTLOOK" Then
 mail_outlook
ElseIf .Range("Q10") = "LOTUS NOTES" Then
 mail_lotus_notes
 End If
End With
End Sub

Sub mail_outlook()
MsgBox "envoi mail Outlook"
End Sub

Sub mail_lotus_notes()
MsgBox "Envoi mail Lotus notes"
End Sub

Oui, chez moi aussi, mais seulement si les 3 macros sont dans la feuille, le problème c'est que mes macros sont dans des modules et là ça plante ....

Ayant un bouton sur plusieurs feuille, je sui obligé de mettre les macro dans des modules

Merci

Bonjour,

ceci fonctionne chez moi dans le cas de figure que tu décris. asavoir la macro appelante dans un module de feuille et les macros Mail_outlook et Mail_Lotus_Notes dans un module commun.

Je viens de créer un fichier vite fait, car le principal est trpo lourd

Bonjour,

il y a une faute frappe dans l'appel de la fonction mailOutllok -> mailOutlook

Pas seulement, il faut également appaler le module, mais grâce à vous je vais passer un excellent week end de Pâques encore milles Merci Merci Merci

J'aurai certainement encore besoin de vos conseils, car la macro lotus fonctionne à merveille depuis une année, et maintenant je peux m'attaquer à la macro Outlook .....

Sub EnvoiMail()

With Sheets("Journal du projet")
If .Range("Q10") = "OUTLOOK" Then
 MailOutlook.MailOutlook
ElseIf .Range("Q10") = "LOTUS NOTES" Then
 MailLotus.MailLotus
 End If
End With

End Sub

Comment on fait pour mettre la discussion en résolu ?

Comment on fait pour mettre la discussion en résolu ?

regarde ma signature

Re,

Pas seulement, il faut également appaler le module

Uniquement parce que tes modules et les macros portent le même nom, à éviter.

Il y a ambiguïté et excel ne peut décider.

Commence tes nom de module par mod_ par exemple. En plus tu reconnaitras à quoi tu as affaire si ça apparait dans le code.

eric

Rechercher des sujets similaires à "choisir macro fonction messagerie presente"