VBA : Copier/Coller des cellules de Excel dans un mail Outlook

Bonjour,

J'essaie de faire une macro qui permet de créer un mail automatiquement, dans lequel figure des données copiées collées d'Excel (je précise que je suis novice en VBA) :

w4eq

J'ai nommé ces tableaux TEST1 et TEST2 pour faciliter légèrement mon code VBA :

6v9h

Mon code est donc le suivant :

kwhi

Un code basique de création de mail, ceci-dit mon objectif n'est tout de même pas très technique.

Voilà donc mon problème ; tout fonctionne bien sauf lors du copier/coller dans mon mail. Voici le résultat :

u9uj

Tandis que le résultat souhaité est le suivant (je l'ai fait à la main) :

pl4g

Savez-vous pourquoi la sélection copiée est collée en 'Vrai' ? Comment adapter mon code pour obtenir le résultat souhaité ?

J'ai une deuxième question : ce code est un code basique que je voulais réaliser pour me familiariser avec la création de mail par macro VBA. Mais à l'avenir j'aimerais améliorer cette macro pour que dans mon tableau elle ne sélectionne que les cellules avec de l'écriture dedans. Si mon tableau est par exemple comme ceci :

a9ny

Je voudrais que ma macro ne copie/colle que les 4 premières lignes dans le mail car les cellules sont remplies.

J'imagine qu'il faut implémenter une boucle conditionnelle mais en y réfléchissant il m'a l'air difficile de créer une sélection (le tableau "rempli" qui doit être copié collé) à partir d'une boucle conditionnelle. Pensez-vous que c'est ambitieux ou en réalité ça se fait bien ?

Merci beaucoup d'avoir pris le temps de lire/répondre.

ju1598

Bonjour,

Merci beaucoup, en reprenant votre réponse dans l'autre sujet j'ai réussi à faire ma conversion HTML. Voici donc le résultat ! :

usyi

Les tableaux sont centrés dans le mail. Savez-vous quelle ligne de mon code (ou bien de la fonction converthtml ? ) modifier pour les laisser sur la gauche comme le texte ?

Je vais maintenant travailler sur ma boucle conditionnelle pour récupérer seulement les cellules non-vides...

Merci beaucoup de votre aide en tout cas !

bonjour,

il faut modifier le code html généré par microsoft.

essaie ceci.

après cette instruction

Corps = converthtml(Range("A1:C2"))

ajoute ceci (il faudra peut-être l'adapter, car elle remplace toutes les occurrences de align=center par align=left, ce qui n'est peut-être pas nécessairement souhaité)

    Corps = Replace(Corps, "align=center", "align=left")

C'est parfait ça marche comme je l'entend !

J'avais toujours le problème des sauts de lignes mais en y allant un peu comme une brute je me suis créé des variables pour chaque partie du message :

b8ju

Ce qui donne après exécution de la macro :

ilyv

Me reste plus qu'à potasser pour le reste du code.

Merci beaucoup !

BOnjour,

heureux que tu sois parvenu au résultat que tu souhaitais. N'oublie pas de clôturer le sujet.

Rechercher des sujets similaires à "vba copier coller mail outlook"