[Résolu][Calc] Sélection de données et envoi courriel

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
Sbalteur
Membre OOrganisé
Membre OOrganisé
Messages : 55
Inscription : 12 juin 2014 14:01

[Résolu][Calc] Sélection de données et envoi courriel

Message par Sbalteur »


La modération vous a écrit: :alerte: Merci de respecter la syntaxe des balises : https://forum.openoffice.org/fr/forum/v ... 295#p27295
Le balisage doit être correctement orthographié (première lettre en majuscule puis le reste en minuscules), le tout entre crochets.

Bonjour,

Après de multiples recherches (infructueuses...) sur le forum et sur la toile en général :( je me permets de vous poser une question...

Comment puis je faire pour envoyer un mail à un destinataire en selectionnant son "code Tiers" (par menu déroulant) en joignant au mail une pièce jointe composée que des données relatives à lui même.. :?:

Le fichier en pièce jointe explique peut être plus clairement ce que j'escompte...

D'avance merci.

Cordialement.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Sbalteur le 17 nov. 2015 14:21, modifié 4 fois.
Libre Office 3.6.5.2 sous WINDOWS 10 - MAJ proscrites par mon employeur...
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25976
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Selection de données et envoi par mail

Message par Dude »

Salut,

L'envoi par courriel fait l'objet d'un suprême de code : https://forum.openoffice.org/fr/forum/v ... 15&t=39844

Reste que :
Dans ta signature, il y a écrit :Libre Office 3.6.5.2 sous WINDOWS sept - MAJ proscrites par mon employeur...
Pas sûr que cela fonctionne pour une version archi-dépassée.
Avatar de l’utilisateur
Sbalteur
Membre OOrganisé
Membre OOrganisé
Messages : 55
Inscription : 12 juin 2014 14:01

Re: [Calc] Selection de données et envoi par mail

Message par Sbalteur »

Merci pour le lien. Je viens de le parcourir et je ne comprends qu'a moitié... :(

Je ne veux pas aussi compliqué, "simplement" une sélection d'une plage donnée par rapport à une liste de choix et ouverture d'un nouveau message courriel suivant la sélection...

Bon je sais c'est compliqué à expliquer... :(
Libre Office 3.6.5.2 sous WINDOWS 10 - MAJ proscrites par mon employeur...
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25976
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Selection de données et envoi par mail

Message par Dude »

"simplement" est un oxymore quand on fait des macros.
Sbalteur a écrit :et ouverture d'un nouveau message courriel
Si cette phrase signifie que tu possèdes un courrielleur d'installé, le plus simple est de faire un mailto.
Cette commande combinée avec l'instruction Shell permet de réaliser cela.

Mais bon si tu ne maîtrises pas la programmation, je te conseille plutôt le menu Fichier > Document par courriel :
_no_problemo.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
Sbalteur
Membre OOrganisé
Membre OOrganisé
Messages : 55
Inscription : 12 juin 2014 14:01

Re: [Calc] Selection de données et envoi par mail

Message par Sbalteur »

Oui merci je vais utiliser la fonction mailto mais comment insérer juste la sélection et non tout le tableau.?

:(

J'ai passé tout l'apres midi a essayer de trouver la solution... :(
Libre Office 3.6.5.2 sous WINDOWS 10 - MAJ proscrites par mon employeur...
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25976
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Selection de données et envoi par mail

Message par Dude »

La fonction mailto ne permet que de passer du texte.
C'est là toute la subtilité de passer un tableau.
Pour qu'il soit intégré dans le corps du message, il faut le convertir en HTML afin qu'il soit visible comme tel.

Et pour cela, on en revient au suprême de code cité dans mon 1er message.
Avatar de l’utilisateur
Sbalteur
Membre OOrganisé
Membre OOrganisé
Messages : 55
Inscription : 12 juin 2014 14:01

Re: [Resolu] Selection de données et envoi par mail

Message par Sbalteur »

Merci pour ces informations !

Je vais changer de méthode et passer par la fonction Fichier - Envoyer par e-mail (j'ouvre un autre sujet pour une petite question...)

Cordialement.
Libre Office 3.6.5.2 sous WINDOWS 10 - MAJ proscrites par mon employeur...
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25976
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Selection de données et envoi par mail

Message par Dude »

Dude a écrit :C'est là toute la subtilité de passer un tableau.
Pour qu'il soit intégré dans le corps du message, il faut le convertir en HTML afin qu'il soit visible comme tel.
Petite subtilité possible en passant par le presse-papier.
Le copier / coller permet depuis une sélection dans une feuille permet de générer un contenu HTML de type tableau.
Dès lors, le code suivant fonctionne :

Code : Tout sélectionner

Sub EnvoiCourriel
   oMSP = CreateUNOService("com.sun.star.mail.MailServiceProvider")
   oDisp = CreateUNOService("com.sun.star.frame.DispatchHelper")
   oDude = CreateUNOService("com.sun.star.datatransfer.clipboard.SystemClipboard")
   oCont = CreateUNOListener("Context_","com.sun.star.uno.XCurrentContext")
   oAuth = CreateUNOListener("Authent_","com.sun.star.mail.XAuthenticator")

   'Utilisation du presse-purée pour le corps du message
   'avec copie de la plage concernée
   oDoc = thisComponent
   oCC = oDoc.CurrentController
   oCadre = oCC.Frame
   oFeuille = oDoc.Sheets.getByIndex(1) '2e feuille
   oPlage = oFeuille.getCellRangeByPosition(0,0,3,3) 'A1 à D4
   oCC.Select(oPlage)
   oDisp.executeDispatch(oCadre, ".uno:Copy", "", 0, Array())
   sCorps = oDude.getContents()

   oPrepa = com.sun.star.mail.MailMessage
   'Paramètres : destinataire, expéditeur, sujet, corps
   oMel = oPrepa.create( "quelqu1@quelque-part.fr", _
      "dude@openoffice.org", _
      "Eh Dude, voici un tableau !", sCorps )

   oSMTP = oMSP.Create("com.sun.star.mail.SMTP")
   oSMTP.Connect(oCont, oAuth)
   if oSMTP.isConnected then oSMTP.SendMailMessage(oMel)
   oSMTP.Disconnect()
End Sub

Function Context_GetValueByName(oEve) as Any
   Select Case oEve
   Case "ServerName"
     Context_GetValueByName = "smtp.quelque-part.fr"
   Case "Port"
     Context_GetValueByName = 25
   Case "ConnectionType"
     'SSL, Insecure ou STARTTSL
     Context_GetValueByName = "Insecure"
   End Select
End Function

Function Authent_GetUserName() as Any
   Authent_GetUserName = "" ' "identifiant"
End Function

Function Authent_GetPassword() as Any
   Authent_GetPassword = "" ' "motDePasse"
End Function  
Il n'en reste qu'il faut quand même que le destinataire accepte les courriels dans ce format.