Envoi mail Outlook via VBA

Bonjour à tous,

Je viens vers car je ne comprend pas pourquoi la macro ci-dessous fonctionne à merveille en mode pas à pas mais pas lorsque j'appuie sur mon bouton activex :

Private Sub CommandButton4_Click() 'Mail pour l'ordonnancement
    Sheets("Mail-Ordo").Activate
    Sheets("Mail-Ordo").Ran ge("A1:D6").Select ' la plage de cellules à envoyer
    ActiveWorkbook.EnvelopeVisible = True

With ActiveSheet.MailEnvelope ' fonction envoi auto du mail
    .Introduction = "Bonjour, ci joint les indicateurs pour le magasin et la production." ' texte en haut de page
    .Item.To = "antoine.bi@pga-avionics.com" ' adresse mail destinataire
    .Item.Subject = "Indicateurs" ' titre dans l'objet du mail
    .Item.Send ' document envoyé auto à l'adresse rentrée
End With
 ActiveWorkbook.EnvelopeVisible = False
End Sub

Le mail arrive bien au destinataire en mode pas à pas mais lorsque je lance la macro via Virtual basic ou via le bouton Activex mon excel et mon Outlook se bloquent complètement

Bonjour,

D'abord, il me semble que vous avez un problème sur cette instruction :

Sheets("Mail-Ordo").Ran ge("A1:D6").Select ' la plage de cellules à envoyer

Elle devrait être:

Sheets("Mail-Ordo").Range("A1:D6").Select ' la plage de cellules à envoyer

Ensuite, il faut savoir que l'envoi par "mailenveloppe" se bloque à la 2ème utilisation. Pour y remédier, 2 solutions :

1- ajouter une instruction de mise à jour du classeur

 
 ActiveWorkbook.EnvelopeVisible = False
 ActiveWorkbook.Save
End Sub

2- passer par une feuille temporaire :

a- créer une nouvelle feuille "Temp"

b- copier la plage de cellules à envoyer sur cette feuille

c- envoyer le mail avec cette feuille

d- supprimer cette feuille.

Merci de ta réponse,

En revanche si je rajoute l'enregistrement de mon fichier j'ai le message d'erreur suivant qui apparait :

2147417851 (80010105) :

Erreur automation

Le serveur à généré une exception

Ensuite mon Excel plante à nouveau.

Merci de votre aide

Bonsoir,

si vous supprimez les instructions

ActiveWorkbook.EnvelopeVisible

, vous n'aurez plus de problème

Private Sub CommandButton4_Click() 'Mail pour l'ordonnancement
    Sheets("Mail-Ordo").Activate
    Sheets("Mail-Ordo").Range("A1:D6").Select ' la plage de cellules à envoyer

    With ActiveSheet.MailEnvelope ' fonction envoi auto du mail
        .Introduction = "Bonjour, ci joint les indicateurs pour le magasin et la production." ' texte en haut de page
        .Item.To = "antoine.bi@pga-avionics.com" ' adresse mail destinataire
        .Item.Subject = "Indicateurs" ' titre dans l'objet du mail
        .Item.Send ' document envoyé auto à l'adresse rentrée
    End With
    ActiveWorkbook.Save
End Sub

Le problème persiste toujours...

Le mail ne s'envoie pas et mon Excel et mon Outlook ne fonctionne plus, je ne peux plus rien faire sur aucune des deux applications ensuite.

Je me demande si ce n'est pas une option à cocher sur l'une des deux applications qui permettrait de débloquer la situation.

Merci de votre aide

Rechercher des sujets similaires à "envoi mail outlook via vba"