gregcitt
Messages postés37Date d'inscriptionjeudi 28 septembre 2006StatutMembreDernière intervention18 juin 2007
-
24 janv. 2007 à 11:31
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
24 janv. 2007 à 22:45
Hello,
JE fais suite à une question que j'avais déja posé pour laquelle je n'ai pas trouvé de solution.
Ma macro permet l'envoi automatique de mail depuis Excel.
Celle -ci fonctionne sans problême sur la plupart des postes, sauf un, avec lequel la macro rencontre cette erreur :
Erreur d'exécution 429
Un Composant Active X ne peut pas créer l'objet'
Le débogage conduit à la ligne suivante :
Set MAILOBJ = CreateObject("Outlook.Application")
Quelqu'un a-t-il déjà rencontré cette erreur?
on m'a dit :
Sur le poste qui ne fonctionne pas, va dans les Références (menu Outils), et regarde s'il n'y a pas une référence marquée "Manquante". Si oui, cherche pour une version différente dans la liste.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 24 janv. 2007 à 11:38
Salut,
IL est inutile de poster plusieur fois la même question. prend plutôt la peine de répondre à ceux qui eux on pris de leur temps pour essayer de t'aider.
Je te proposais d'ailleurs de m'envoyer le XLS pour voir si chez moi cela ne planterait pas aussi.
D'autre part, essayons de t'aider.
1- De quel type est la variable MAILOBJ.
2- Peu être que le problème vient d'aute part.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 24 janv. 2007 à 11:44
C'est moi qui ai parlé de Références et je n'ai pas eu de réponses... En fait, oui..., on m'a dit que, du fait que tu utilisais CreateObject, tu n'avais pas besoin de Référence mais elle est peut-être cochée tout de même et "Manquante"... (?)
Lorsque tu crées tes macros dans l'éditeur VBA, regarde dans le menu Outils / Références s'il n'y aurait pas de références marquées "Manquante". Si oui, il faut la décocher et trouver la bonne version sur cet ordi ou tout simplement la décocher et utiliser CreateObject qui semble ne pas nécessiter de référence cochée
Autrement, tu pourrais utiliser une autre méthode qui n'utiliserait pas nécessairement OutLook. Il te faudrait ajouter les contrôles MAPI sur un UserForm. J'ai mis un bout de code là-dessus, il n'y a pas très longtemps. Fais une recherche dans les forums. Ça se passera en "transparence" sans ouverture de programme de courriel.
S'il n'y avait pas de fichiers joint, l'API ShellExecute serait un bon choix, mais ça ne passe pas avec les fichiers, même si on dit souvent que oui sur divers sites web.
gregcitt
Messages postés37Date d'inscriptionjeudi 28 septembre 2006StatutMembreDernière intervention18 juin 2007 24 janv. 2007 à 16:54
Avant tout, merci pour votre aide
Comme vous avez dû le comprendre je cherchai à figurer sur les premières pages du forum, thta's why, excusez moi pour le manque de déontologie.
Julien je n'avait pas bien compris ce que tu voulai que je t'envoie.
En fait je préfère ne pas l'envoyer car c'est un fichier d'impayés donc confidentiel, et de plus il faudrai que je t'envoie 2 excel qui sont reliés entre eux, donc : trop compliqué
Je viens de regarder dans les références, est-ce que ce sont des références propres au poste ou propres à la macro.
Dans le cas ou ce serait celle de la macro, j'ai cocher toutes celles qui comprenaient "ActiveX".
Sinon je vérifierait demain sur le poste de la personne car elle est absente aujourd'hui
En tout cas merci encore à vous, je donnerai suite.
Ah, oui, sinon Mpi : peut tu me donner des précissions sur Shell Execute, car les mails que j'envoie ne comportent pas de pièces jointes, ça pourrait donc marcher.........
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 24 janv. 2007 à 22:45
D'une part, tu ne dois pas cocher des références dont tu n'as pas besoin, donc je te dirais de décocher tout ce que tu as ajouté. S'il y a une référence "manquante", elle devrait se situer dans les toutes premières en haut et elle serait noté "MANQUANTE" en majuscules.
Pour ShellExecute, tu dois déclarer l'API en Private sur une feuille de code ou en Public dans un module (préférable...)
Déclaration:
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal Hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Utilisation:
Dim Tmp As Long
Tmp = ShellExecute(0, "Open", "mailto:" & AdresseCourriel & "?Subject=Sujet&Body=Texte à écrire", 0&, 0&, 1)
Et tu n'a qu'à modifier les parties en rouge.
Attention aux guillemets toutefois...