Par macro, joindre par courriel un extrait du fichier en image .jpg

Webperegrino

XLDnaute Impliqué
Supporter XLD
Bonsoir Le Forum,

Cela fait plusieurs jours que je cherche dans toutes les directions sur le Forum et le Web. Lévolution de mes tentatives de faire fonctionner l’application ci-jointe m'amène à me faire du « tounicotti-tournicotton » de neurones au point d'en arriver à une implosion imminente de ces derniers !

J’en suis à ma 6ème conception distincte des autres !

L’objectif est :
Par appui sur un bouton, après choix d’un destinataire dans un déroulant d’adresse mail en feuil1, d'adresser non pas le fichier entier .xls avec ses macros, mais seulement une image en format .JPG de la zone définie en feuil2.

J’en appelle à un véritable expert pour m’aider à trouver la bonne formulation pour transmettre par mail, cette copie image. Je sens que je ne suis pas loin d'arriver, mais à ce stade de mes petites connaissances, je bloque complètement et votre aide me serait agréable.

Avant d'ouvrir le fichier, placez-le dans un répertoire C:\ ou I:\
Lorsq'on applique les macros, un fichier ImageDePlage.jpg se placera à proximité de cellui-ci.
C'est à ce stade que la macro devrait mettre cette application .JPG en pièce jointe.


Merci à l’avance.

Webperegrino
 

Pièces jointes

  • Echeancier_essai6.xls
    382.5 KB · Affichages: 51
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Par macro, joindre par courriel un extrait du fichier en image .jpg

Salut Webperegrino

C'est comme qui dirait le voisin ... le gros bordel dans ton code :rolleyes:
Du copier coller de bout de code, n'est en général pas terrible ...

Voici une possibilité
VB:
Private Sub CommandButton2_Click()  Dim Source As Range, Gr As Object
  Dim sPath As String, sFic As String
  Dim Dest As String, Sujet As String
  Dim ObjOutlook As Object
  Dim ObjMail As Object


  ' Définir le chemin d'accès
  sPath = ThisWorkbook.path & "\"
  ' Définir le nom du fichier
  sFic = "ImageDePlage.jpg"


  '******************************************************
  '*** Enregistre la zone sélectionnée en format .JPG ***
  '******************************************************
' Un espace après un nom d'onglet n'est vraiment pas conseillé !?
Set Source = Sheets("Facture ").Range("A1:H52")
  Source.CopyPicture xlScreen, xlPicture
  Set Gr = Sheets(2).ChartObjects.Add(0, 0, Source.Width, Source.Height)
  Gr.Chart.Paste
  Gr.Chart.Export sPath & sFic, "JPG"
  Gr.Delete
  Set Gr = Nothing
  Set Source = Nothing

  ' Récupérer ou définir les nformations nécessaires au mail
  Dest = Sheets(1).Range("E21").Value
  Objet = "Envoi automatisé de : ImageDePlage.jpg"  'Sujet
  Corps = "Bonjour, " & Chr(10) & "Vous trouverez ci-joint une copie de l'état de vos règlements pour votre activité. " & _
          Chr(10) & "Merci de bien vouloir me faire un retour de tout règlement non encore effectué. " & Chr(10) & _
          vbCrLf & _
          "Nous restons bien entendu à votre disposition pour tout renseignement complémentaire." & _
          vbCrLf & _
          "Cordialement," & Chr(10) & _
          "Webperegrino "

  ' Créer une instance d'outlook
  Set ObjOutlook = CreateObject("Outlook.application")
  Set ObjMail = ObjOutlook.Createitem(0)
  ' Avec le mail
  With ObjMail
    .Subject = Objet
    .body = Corps
    .to = Dest
    .Attachments.Add sPath & sFic
    .Send
    '.Save
  End With
  '***********************
  Application.DisplayAlerts = True
  Set ObjOutlook = Nothing
  Set ObjMail = Nothing
End Sub

A+
 

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : Par macro, joindre par courriel un extrait du fichier en image .jpg

Bonjour Le Forum,
Bonjour Bruno,
Le début de ton message est on ne peut plus vrai et juste : le 'voisin' aurait raison en effet car j'ai sérieusement fureté sur le web pour 'pondre' cela, en vrai amateur.
Il y avait par contre un début de résutat, mais quel cirque !
Je vais essayer ta proposition, avec mon émetteur Incredimail ici, OutlookExpress au travail, et je te remercie beaucoup pour ta réactivité et ton aide.
A plus pour de nouveaux remerciements, j'en suis certain...
Bonne journée,
Webperegrino
 
C

Compte Supprimé 979

Guest
Re : Par macro, joindre par courriel un extrait du fichier en image .jpg

Re,

ATTENTION !
Ce code ne peut fonctionner que si tu as une version Outlook d'installer

Pour Incredimail et OL Expresse, il faudra autre chose ;)

A+
 

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : Par macro, joindre par courriel un extrait du fichier en image .jpg

Re-Bonjour Le Forum, Bruno,

En effet pas de résultat avec mon navigateur Incredimail en place ici en navigateur par défaut (et unique).

Je m’étais ajouté une ligne de code [ci-dessous] en fin de macro pour une confirmation d’envoi et en effet sur mon poste rien ne se passe.
C’est donc en cohérence avec ce que tu viens de me confirmer, Outlook n’étant pas installé (ici Incredimail, là ce sera Outlook Express, ailleurs Outlook...).

End With
'***********************
MsgBox " Message transmis."
Application.DisplayAlerts = True

Sur le Web j’avais trouvé quelque chose comme ceci :

Sub EnvoiMail()
Workbooks("UnClasseur").SendMail Recipients:="le.destinataire@courriel.fr", _
Subject:="Test envoi image .jpg d'une zone de feuille .xls", _
ReturnReceipt:=True
End Sub

Penses-tu que c’est dans cette direction qu’il faut aller ?
Je pourrais ainsi employer le fichier sur n’importe quel ordinateur, avec son navigateur par défaut pour adresser le mail au destinataire.

J’ai bien glané ce qui suit sur le Web mais ça me paraît bien lourd à mettre en place, et recherche vraiment une codification bien plus simple pour le navigateur pas défaut


Sub OutLookExpress()
TouchesPJ(0) = 2
TouchesPJ(1) = "%i" ' Appel du menu Insertion par la touche Alt-i
TouchesPJ(2) = "p" ' appel du sous-menu pièce par la touche p
' Pour l'envoi du mail
TouchesEnvoi(0) = 1 ' Nombre de touches nécessaires
TouchesEnvoi(1) = "%s" ' Envoi du message avec Alt-s
End Sub
Sub MozillaThunderbird()
TouchesPJ(0) = 4 ' Nombre de touches nécessaires
TouchesPJ(1) = "{F10}" ' Appel des menus par {F10}
TouchesPJ(2) = "f" ' Appel du menu Fichier par la touche f
TouchesPJ(3) = "j" ' appel du sous-menu Joindre par la touche j
TouchesPJ(4) = "f" ' appel du sous-sous-menu Fichier par la touche f
TouchesEnvoi(0) = 4 ' Nombre de touches nécessaires
TouchesEnvoi(1) = "%xf" ' choisit l'expéditeur qui commence par F
TouchesEnvoi(2) = "^{ENTER}" ' Envoi du message avec Ctrl-Entrée
TouchesEnvoi(3) = "{DOWN}" ' Flèche bas pour choisir l'option "Envoyer en HTML seul"
TouchesEnvoi(4) = "{ENTER}" ' confirmation par Entrée
End Sub
Sub Office2003OutLook()
TouchesPJ(0) = 2 ' Nombre de touches nécessaires
TouchesPJ(1) = "%i" ' Appel du menu Insertion par la touche Alt-i
TouchesPJ(2) = "f" ' appel du sous-menu fichier par la touche f
TouchesEnvoi(0) = 1 ' Nombre de touches nécessaires
TouchesEnvoi(1) = "%v" ' Envoi du message avec Alt-v
End Sub
Sub Incredimail()
TouchesPJ(0) = 1 ' Nombre de touches nécessaires
TouchesPJ(1) = "^+a" 'Appel du menu Insertion Fichier par la touche Ctrl+Shift+A
TouchesEnvoi(0) = 1 ' Nombre de touches nécessaires
TouchesEnvoi(1) = "%s" 'Envoi du message avecAlt-s
End Sub
Sub Office2003OutLookV2()
TouchesPJ(0) = 3 ' Nombre de touches nécessaires
TouchesPJ(1) = "%a" 'Appel du menu Insertion par la touche Alt-a (affichage)
TouchesPJ(2) = "{RIGHT}" ' puis flèche à droite
TouchesPJ(3) = "f" ' appel du sous-menu fichier par la touche f
TouchesEnvoi(0) = 1 ' Nombre de touches nécessaires
TouchesEnvoi(1) = "%v" ' Envoi du message avecAlt-v
End Sub
Sub Office2007OutLook()
TouchesPJ(0) = 2 ' Nombre de touches nécessaires
TouchesPJ(1) = "%s" ' Appel du menu Insertion par la touche Alt-i
TouchesPJ(2) = "jf" ' appel du sous-menu fichier par la touche f
TouchesEnvoi(0) = 1 ' Nombre de touches nécessaires
TouchesEnvoi(1) = "%v" 'Envoi du message avecAlt-v
End Sub
Sub Office2000OutLook()
TouchesPJ(0) = 2 ' Nombre de touches nécessaires
TouchesPJ(1) = "%i" ' Appel du menu Insertion par la touche Alt-i
TouchesPJ(2) = "f" ' appel du sous-menu fichier par la touche f
TouchesEnvoi(0) = 1 ' Nombre de touches nécessaires
TouchesEnvoi(1) = "^{ENTER}" ' Envoi du message avec Ctrl-Entrée
End Sub

Merci pour ta contribution
Webperegrino
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Par macro, joindre par courriel un extrait du fichier en image .jpg

Re,

Le code que tu nous as mis, utilises apparemment les SendKeys ...
Perso, pour moi, ce n'est pas de la programmation, mais du bidouillage :rolleyes:

Peux-tu nous dire a quoi ou qui est destiné ce petit programme ?

Car sinon tu peux utiliser la méthode CDO (Collaborative Data Objects) qui te permets d'envoyer des mails
directement via un serveur de messagerie, sans passer par aucun outils de messagerie

A+
 

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : Par macro, joindre par courriel un extrait du fichier en image .jpg

Le Forum,
Bruno,
Bonsoir.

A vrai dire ce n'est même pas pour moi qu'est destiné ce petit programme.
Une personne ayant visité notre Le Forum, était tombé sur une de mes discussions précédentes (sans pouvoir m'indiquer laquelle par la suite) et m'a adressé un message personnel, avec cette demande d'aide, sur mon adresse mail attachée à mon identité sur notre Forum.
J'ai donc accepté de lui venir en aide, mais je m'aperçois que mes connaissances, limitées, ne pourront lui venir en aide.

Je vais donc lui adresser un message personnel et lui demander de venir dans cette conversation te faire directement sa requête, s'il souhaite vraiment aller plus loin.
S'il n'intervient pas ici, c'est que nous aurons tous les deux fait notre travail, bénévolement et pour le plaisir de rendre service, du moins essayer !
Cordialement, et Merci beaucoup encore Bruno pour ton approche que je vais étudier de mon côté.
Bon week-end
Webperegrino
 

Statistiques des forums

Discussions
312 305
Messages
2 087 090
Membres
103 464
dernier inscrit
Inconnu2