Création de mail outlook avec VBA

Je cherchais dans les boutons du haut au lieu de chercher en bas (non non ma vue est bonne je vous assure ^^)

J'ai désactiver l'ajout de la PJ dans le code.

Tu dois juste changer

Range("texte").Copy

par

Sheets("bla_bla").Range("texte").Copy

La feuille doc_pdf étant sélectionnée, il ne trouve par la case "Texte" qui se trouve dans la feuille bla_bla

Dans mon code il est écrit Sheets("bla_bla").Range("texte").Copy et non pas Range("texte").Copy

emmanuelle.b a écrit :

Il est déjà écrit dans mon code Sheets("bla_bla").Range("texte").Copy

Il y avait 2 Modules -_- ... autant pour moi je regarde le bon là

oui il y a le code d'origine que l'on m'avait fournit, j'ai oublié de le préciser.

Enlève

Application.CutCopyMode = False

à la fin

Maxz a écrit :
emmanuelle.b a écrit :

Il est déjà écrit dans mon code Sheets("bla_bla").Range("texte").Copy

Il y avait 2 Modules -_- ... autant pour moi je regarde le bon là

Maxz a écrit :

Enlève

Code: Tout sélectionner

Application.CutCopyMode = False

à la fin

Ca marche!!!!

Bon la macro m'ajoute une ligne entre le texte et ma signature auto je ne sais pas trop pourquoi (du coup j'ai deux sauts de ligne, car j'en ai déjà un de prévu dans ma signature auto) mais je vais pas faire ma compliquée tant que cela fonctionne ^^.


Merci à tous pour votre aide en tout cas, je sais que je vous ai beaucoup sollicité pour ce sujet ^^

J'ai (encore) réfléchi (si si je vous assure cela m'arrive !), le problème en fait vient de ce que le sendkeys n'avait pas eu le temps de faire effet dans outlook (et cela m'arrive parfois) que le Application.CutCopyMode = False avait déjà effacé la cellule à copier

Conclusion = faut demander à ton patron un micro beaucoup plus puissant !!

je demande que ça crois moi !

^^

encore merci à tous.

Bonjour,

Petite question supplémentaire en lien avec le sujet.

Ma macro ouvre de nombreux mails les uns derrière les autres. Jusque là pas de soucis.

Mon problème est lié au ctrl + v pour mon texte. Chaque ctrl + v ne se met pas forcément dans le bon mail. Il arrive donc que certain mail n'ait pas le texte et que d'autre ait 1, 2 ou 3 fois le texte.

Existe t-il un moyen de bien découper chaque mail tout en restant dans le même code?

Oui, calme le jeu en mettant dans ce cas des temporisations de 2 secondes entre chaque courriel ...

Application.Wait (Now + TimeValue("0:00:02"))

J'ai déjà essayé ça et même plus que 2 sec.

La technique a ses limites dans ce cas !

Soit tu fais les mails les uns après les autres ... soit tu abandonnes l'idée d'y mettre ta signature pour revenir à une solution plus classique ... soit et c'est la meilleure solution dans ce cas, tu écris le htmlbody y compris ta signature dans le code VBA.


je pense aussi qu'on revient au problème de lenteur du PC

il m'est arrivé il y a peu d etemps de lancer en rafale de 10 environ 200 mails par cette méthode, et je n'ai eu qu'une fois un mélange

Imaginons que j'ai une quinzaine de mail à envoyer à la suite. J'ai donc dans un même module découpé ma macro en 15 "mini macro". Y aurait-il un moyen qu'à partir d'un bouton je lance toutes les macros les unes derrière les autres?

Hum ... je ne sais pas faire, car il s'agit de naviguer entre 2 applications excel et outlook.

Vraiment, si tu veux quelque chose de propre, il faudrait écrire dans ton code VBA le texte en html (donc avec des balises) en y joignant une signature. Si tu as un logo, c'est plus complexe, il faudrait sans doute une adresse http de l'image.

On va attendre aussi l'avis des autres spécialistes !

Je pensais qu'il était possible qu'une macro en appel d'autres et les lance les unes après les autres?

Oui, mais je crains qu'il y ait toujours ce problème de synchronisation entre les applications et le presse-papier.

Car en gros il faut assurer que tout fonctionne dans l'ordre :

  • envoyer dans presse-papier ce qu'il faut copier
  • créer une instance outlook, définir ses paramètres (destinataires, copies, titre)
  • faire en sorte que outlook récupère la signature
  • afficher l'instance et se focaliser sur le corps du mail
  • récupérer le contenu du presse-papier au moment où le focus est sur le corps du mail
  • et relancer pas trop vite un autre mail etc.

L'astuce de passer par sendkeys est intéressante mais rien ne permet d'organiser la séquence des opérations dans le bon ordre si tant est que ou bien outllok n'est pas ouvert, ou que le micro est lent, ou que ... ou que ...

Chaque "mini macro" est indépendante et peut être lancée séparément des autres macros. Il devrait donc être possible (même pour mon pc) de gérer macro après macro (en laissant un petit temps entre le lancement de la macro 1 et la macro 2 entre la 2 et la 3...), non?

Steelson a écrit :

Oui, mais je crains qu'il y ait toujours ce problème de synchronisation entre les applications et le presse-papier.

Car en gros il faut assurer que tout fonctionne dans l'ordre :

  • envoyer dans presse-papier ce qu'il faut copier
  • créer une instance outlook, définir ses paramètres (destinataires, copies, titre)
  • faire en sorte que outlook récupère la signature
  • afficher l'instance et se focaliser sur le corps du mail
  • récupérer le contenu du presse-papier au moment où le focus est sur le corps du mail
  • et relancer pas trop vite un autre mail etc.

L'astuce de passer par sendkeys est intéressante mais rien ne permet d'organiser la séquence des opérations dans le bon ordre si tant est que ou bien outllok n'est pas ouvert, ou que le micro est lent, ou que ... ou que ...

Tu as raisons, je viens d'essayer et le pc ne suit pas. J'ai un texte dans 1 mail sur 2 ou 3...

Rechercher des sujets similaires à "creation mail outlook vba"