Création de mail outlook avec VBA

Re,

Peut-être faut-il remplacer ...

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

par

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

De toute façon, ce qui bloque, c'est la copie dans le presse-papier

Le reste a montré son efficacité en recopiant par exemple "end with" par inadvertance

Le test que je propose devrait nous éclairer

Néanmoins, j'ai réfléchi (si si cela m'arrive) : qu'est-ce qui peut bloquer la copie d'une zone dans le presse-papier ? je pensais à une cellule protégée, mais je viens de tester, ici j'ai bien la recopie ...

Il faut qu'on débloque ce nœud gordien

Re,

qu'est-ce qui peut bloquer la copie d'une zone dans le presse-papier ?

Une macro évènementielle ... dans la feuille concernée ... par exemple ...

ou bien aussi un "on error resume next" dans la procédure qui fait que si la copie se passe mal (zone non définie, orthographe), la macro passe outre


voici un code épuré, teste-le

Bonjour,

Mais que dit Emmanuelle ...???

Attends, attends, elle arrive au boulot !

emmanuelle.b a écrit :

Je regarderai ça demain matin, je ne suis plus au boulot.

Désolé j'étais en réunion toute la journée hier, je regarde vos idées ce matin

Steelson a écrit :

ou bien aussi un "on error resume next" dans la procédure qui fait que si la copie se passe mal (zone non définie, orthographe), la macro passe outre


voici un code épuré, teste-le

Je viens de tester et aucun texte ne s'ajoute dans le mail, par contre le sujet, l'adresse mail et la signature auto sont bien présente dans le mail.

Bonjour Emmanuelle,

Au risque de me répéter ... tu dois être à 100 % d'avoir correctement défini ta plage : Texte ...

Je suis sur à 100% malheureusement...

Quand je me mets sur la cellule en question le nom de la cellule n'est pas D18 par exemple mais bien texte. Dans le gestionnaire de nom elle est bien renseignée également...

Re,

Tu parles d'une cellule ...???

S'agit-il d'une plage ... ou d'une seule cellule qui contient tout le texte ...???

emmanuelle.b a écrit :
Steelson a écrit :

voici un code épuré, teste-le

Je viens de tester et aucun texte ne s'ajoute dans le mail, par contre le sujet, l'adresse mail et la signature auto sont bien présente dans le mail.

Nom d'une pipe, c'est fort de café !! cela va me rendre digue ... reste à mettre éventuellement une libération du presse-papier juste avant copy, et inhibe le second ... juste après la procédure, une fois dans outlook essaie de faire Ctrl V à la main, on verra si le presse-papier contient quelquechose !

Option Explicit
Sub envoi_email()

Dim messagerie As Object
Dim courriel As Object

    Application.CutCopyMode = False
    Cells.Copy

    Set messagerie = CreateObject("Outlook.Application")
    Set courriel = messagerie.CreateItem(0)
    With courriel
        .To = "truc.muche@gouv.fr"
        .Subject = "envoi mail"
        .display
    End With

    Application.Wait (Now + TimeValue("0:00:02"))
    SendKeys "^v", True
    'Application.CutCopyMode = False

    Set courriel = Nothing
    Set messagerie = Nothing

End Sub

après je mets une bougie et j'implore le Saint Esprit !

James007 a écrit :

Re,

Tu parles d'une cellule ...???

S'agit-il d'une plage ... ou d'une seule cellule qui contient tout le texte ...???

une cellule


Steelson a écrit :
emmanuelle.b a écrit :
Steelson a écrit :

voici un code épuré, teste-le

Je viens de tester et aucun texte ne s'ajoute dans le mail, par contre le sujet, l'adresse mail et la signature auto sont bien présente dans le mail.

Nom d'une pipe, c'est fort de café !! cela va me rendre digue ... reste à mettre éventuellement une libération du presse-papier juste avant copy, et inhibe le second ... juste après la procédure, une fois dans outlook essaie de faire Ctrl V à la main, on verra si le presse-papier contient quelquechose !

Option Explicit
Sub envoi_email()

Dim messagerie As Object
Dim courriel As Object

    Application.CutCopyMode = False
    Cells.Copy

    Set messagerie = CreateObject("Outlook.Application")
    Set courriel = messagerie.CreateItem(0)
    With courriel
        .To = "truc.muche@gouv.fr"
        .Subject = "envoi mail"
        .display
    End With

    Application.Wait (Now + TimeValue("0:00:02"))
    SendKeys "^v", True
    'Application.CutCopyMode = False

    Set courriel = Nothing
    Set messagerie = Nothing

End Sub

après je mets une bougie et j'implore le Saint Esprit !

Toujours rien...Et je n'ai rien dans le presse papier.

Le truc qui est bizarre c'est que quand je fais un ctrl + c sur la cellule en question et que je lance la macro (en enlevant la ligne qui effectue le copier) ensuite je n'ai rien qui se copie. Par contre quand je rentre dans la barre de formule de la cellule, que je copie le texte et qu'ensuite je lance la macro (toujours sans la ligne de code qui effectue le copier)...là cela fonctionne, j'ai bien mon texte dans le mail...

Bonjour,

Juste une petite question qui me turlupine, pourquoi ne pas remplacer:

Range("test").copy

par

Range("test").Value.copy

ou encore juste mettre :

 
With courriel
     .body = Range("Texte").Value
End With

Maxz

Maxz a écrit :

ou encore juste mettre :

 
With courriel
     .body = Range("Texte").Value
End With

Maxz

dans ce cas la signature est kaput !

emmanuelle.b a écrit :

Le truc qui est bizarre c'est que quand je fais un ctrl + c sur la cellule en question et que je lance la macro (en enlevant la ligne qui effectue le copier) ensuite je n'ai rien qui se copie. Par contre quand je rentre dans la barre de formule de la cellule, que je copie le texte et qu'ensuite je lance la macro (toujours sans la ligne de code qui effectue le copier)...là cela fonctionne, j'ai bien mon texte dans le mail...

Éventuellement, fais nous un gros élagage du fichier en ne laissant que la cellule apparaître ... j'aimerais voir ce qu'il y a dedans ... pour t'aider !

Steelson a écrit :
Maxz a écrit :

ou encore juste mettre :

 
With courriel
     .body = Range("Texte").Value
End With

Maxz

dans ce cas la signature est kaput !

Ah exact, et le coup du

 
Range("Texte").Value.copy

Vous avez testé ?

Re,

Sincèrement tout le texte ... dans une seule cellule ... !!!

D'ailleurs ... Où cela nous mène -t-il en nombres de caractères ...???

Quand je pense qu'il suffirait d'avoir le fichier pour régler ce problème ... dans les cinq minutes ...!!!

emmanuelle.b a écrit :

Le truc qui est bizarre c'est que quand je fais un ctrl + c sur la cellule en question et que je lance la macro (en enlevant la ligne qui effectue le copier) ensuite je n'ai rien qui se copie. Par contre quand je rentre dans la barre de formule de la cellule, que je copie le texte et qu'ensuite je lance la macro (toujours sans la ligne de code qui effectue le copier)...là cela fonctionne, j'ai bien mon texte dans le mail...

as-tu aussi dans ce cas enlevé les Application.CutCopyMode = False ?


Maxz a écrit :

et le coup du

 
Range("Texte").Value.copy

Vous avez testé ?

j'étais curieux car je trouvais la suggestion bonne, mais excel me le rejette, je crois que copy ne peut s'adresser qu'à un objet

j'avais aussi essayé de mettre la valeur dans une variable et faire copie : niet

James007 a écrit :

Re,

Sincèrement tout le texte ... dans une seule cellule ... !!!

D'ailleurs ... Où cela nous mène -t-il en nombres de caractères ...???

Quand je pense qu'il suffirait d'avoir le fichier pour régler ce problème ... dans les cinq minutes ...!!!

Je ne refuse pas de mettre le fichier (d'autant plus qu'il s'agit du fichier que l'un de vous m'avez fournit pour faire les test au départ, il a juste un peu évolué).

Je ne sais plus comment le charger sur le forum c'est tout...


Steelson a écrit :
emmanuelle.b a écrit :

Le truc qui est bizarre c'est que quand je fais un ctrl + c sur la cellule en question et que je lance la macro (en enlevant la ligne qui effectue le copier) ensuite je n'ai rien qui se copie. Par contre quand je rentre dans la barre de formule de la cellule, que je copie le texte et qu'ensuite je lance la macro (toujours sans la ligne de code qui effectue le copier)...là cela fonctionne, j'ai bien mon texte dans le mail...

as-tu aussi dans ce cas enlevé les Application.CutCopyMode = False ?


Maxz a écrit :

et le coup du

 
Range("Texte").Value.copy

Vous avez testé ?

j'étais curieux car je trouvais la suggestion bonne, mais excel me le rejette, je crois que copy ne peut s'adresser qu'à un objet

j'avais aussi essayé de mettre la valeur dans une variable et faire copie : niet

En effet je confirme le .value.copy n'est pas accepté.

Je n'ai pas laissé le Application.CutCopyMode = False dans le code étant donné que cela ne fonctionne pas. Donc je n'ai pas essayé avec.

Re,

Pour joindre ton fichier Excel ... la video youtube ...

EbNYLzTz5wM

Rechercher des sujets similaires à "creation mail outlook vba"