Page 1 sur 1

[Résolu][Calc] Macro ne fonctionne plus sur nouvelle version

MessagePublié: 04 Juil 2019 13:14
par limix429

La modération vous a écrit: Merci de respecter la syntaxe des balises La première lettre en majuscule, le reste en minuscules, le tout entre crochets. [Calc].
Nous avons modifié pour vous.


Bonjour,

J'ai écris une macro pour mon boulot qui faisait une copie de la feuille sélectionnée et la collait dans un nouveau document qui était envoyé par mail.
Cette macro fonctionne dans LibreOffice version 5.0.6.3.0+ mais ne fonctionne plus dans la version 5.4.5.1.M2. J'ai testé également dans la version 6.2.3.2 sans succès.

Aucun message d'erreur ne s'affiche. Le nouveau document est bien créé la feuille renommée mais le contenu n'est pas collé. En effet le fichier joint dans le mail est vide.

Il y a t il une fonction qui n'est plus disponible dans ces nouvelles versions ? J'ai cherché mais je n'ai rien trouvé en ce sens.

Merci d'avance je joins le fichier pour que vous puissiez tester.

Pour info ça se passe sous windows.

Emmanuel

Re: [Calc] Macro ne fonctionne plus sur nouvelle version

MessagePublié: 04 Juil 2019 14:14
par Bidouille
Bonjour,

limix429 a écrit:ne fonctionne plus dans la version 5.4.5.1.M2. J'ai testé également dans la version 6.2.3.2 sans succès

Veuillez consulter ce fil pour savoir quelle version nous recommandons : https://forum.openoffice.org/fr/forum/viewtopic.php?f=2&t=49867
Faites votre test avec.

Re: [Calc] Macro ne fonctionne plus sur nouvelle version

MessagePublié: 04 Juil 2019 16:38
par limix429
J'essaierai avec la version 6.1.6 de libreoffice mais bon si la version antérieure et supérieure ne fonctionne pas je ne pense pas que ce sera concluent.
Mais ça ne réglera pas mon problème étant donné que je ne pourrais pas installé ces versions dans mon entreprise. je souhaite juste savoir si quelqu'un comprend pourquoi ça ne fonctionne pas.
Il semble que c'est le copier/coller qui ne fonctionne plus.

[EDIT]
J'ai oublié de le signaler il y a un bouton pour essayer la macro "copiepourenvoieparmail" dans la barre en haut à gauche.

Re: [Calc] Macro ne fonctionne plus sur nouvelle version

MessagePublié: 05 Juil 2019 20:32
par Piaf
Bonjour
A tester
Code : Tout sélectionner   AgrandirRéduire
Option Explicit

Sub CopiePourEnvoiParMail

   Dim sourceDoc As Object, sourceSheet As Object
   Dim destDoc As Object,    destSheets As Object, destSheet As Object, maCellule as Object, destURL As String
   Dim aCopier as Object, sourceController As Object, destController As Object
   Dim Args(0) as new com.sun.star.beans.PropertyValue
   Dim sv As Object, unClient As Object, monMel As Object
   Dim path As String, formatedPath As String
   Dim today As Date
   Dim formatedDate As String
   Dim annexes(0) As String, nbF as long
    
   sourceDoc = thisComponent
   sourceSheet = sourceDoc.getCurrentController().getActiveSheet()
   sourceController = sourceDoc.currentController
   sourceController.Select(sourceSheet)
   aCopier = sourceDoc.CurrentController.getTransferable()   
   destDoc = StarDesktop.LoadComponentFromURL("private:factory/scalc","_blank",0,array())
   destSheets = destDoc.Sheets
   nbF = destSheets.Count
   destSheet = destSheets.GetByIndex(0)
   maCellule = destSheet.getCellRangeByName("A1") 
   destController = destDoc.currentController
   destController.Select(maCellule)
   destController.insertTransferable(aCopier)
   destSheet.Name = sourceSheet.Name
   today = date()
   formatedDate = Format(today, "ddmmyyyy")
   GlobalScope.BasicLibraries.loadLibrary("Tools")
   path=DirectoryNameoutofPath(ThisComponent.getURL(),"/")
   formatedPath = Mid(path, 9 , Len(path))
   destURL = formatedPath & "/Tableaux Envoyés/" & destSheet.Name & "/envoi" & destSheet.Name & "_" & formatedDate & ".ods" 'à modifier bien sûr
   destURL = ConvertToURL(destURL)
   destDoc.StoreToUrl(destURL,array())
   on Error Resume Next ' ignorer l'erreur éventuelle
   destDoc.close(True)
   On Error GoTo 0 ' reprendre le traitement d'erreur normal
   sv = createUnoService("com.sun.star.system.SimpleSystemMail")
   unClient = sv.querySimpleMailClient
   if IsNull(unClient) then
      MsgBox("Client de messagerie non disponible", 16)
   stop
   end if
   monMel = unClient.createSimpleMailMessage
   with monMel ' évite de répéter monMel.xxxx
      .Subject= "Envoi d'une copie d'une feuille"
      annexes(0) = destUrl
      .Attachement= annexes()
   end with
   unClient.sendSimpleMailMessage(monMel, 0)
End Sub
A+

Re: [Calc] Macro ne fonctionne plus sur nouvelle version

MessagePublié: 09 Juil 2019 14:42
par limix429
Merci beaucoup Piaf ça fonctionne parfaitement.

J'ai même testé sur plusieurs versions étant donné que nos informaticiens sont pas fichus de déployer la même version d'un logiciel correctement. J'ai compté il y a au moins 5 versions différentes de libreoffice dans le parc :shock:

En te remerciant à nouveau.