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

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 !
limix429
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 30 janv. 2010 13:21

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

Message 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
Pièces jointes
Tableau TEST.ods
(22.48 Kio) Téléchargé 111 fois
Dernière modification par limix429 le 09 juil. 2019 15:44, modifié 3 fois.
Boulot
LibreOffice 5.0.6.3.0+
Windows 7 Entreprise

Maison
LibreOffice 6.2.3.2
Windows 10
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12196
Inscription : 08 nov. 2005 17:23
Localisation : Caen, France
Contact :

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

Message 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.
limix429
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 30 janv. 2010 13:21

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

Message 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.
Boulot
LibreOffice 5.0.6.3.0+
Windows 7 Entreprise

Maison
LibreOffice 6.2.3.2
Windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

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

Message 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+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
limix429
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 30 janv. 2010 13:21

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

Message 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.
Boulot
LibreOffice 5.0.6.3.0+
Windows 7 Entreprise

Maison
LibreOffice 6.2.3.2
Windows 10
Verrouillé