Page 1 sur 1

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

Publié : 04 juil. 2019 12: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

Publié : 04 juil. 2019 13: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/v ... =2&t=49867
Faites votre test avec.

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

Publié : 04 juil. 2019 15: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

Publié : 05 juil. 2019 19:32
par Piaf
Bonjour
A tester

Code : Tout sélectionner

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

Publié : 09 juil. 2019 13: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.