Macro excel vers Libreoffice

Fermé
valttt Messages postés 279 Date d'inscription mercredi 7 mars 2012 Statut Membre Dernière intervention 27 octobre 2024 - Modifié par gbinforme le 29/06/2016 à 09:32
valttt Messages postés 279 Date d'inscription mercredi 7 mars 2012 Statut Membre Dernière intervention 27 octobre 2024 - 29 juin 2016 à 10:38
Bonjour,

J'ai un fichier Facture.xlsm avec une macro VBA (créé sous excel 2010).
Je souhaite arrêter de travailler avec Office et me mettre à utiliser LibreOffice et cela de façon définitive.
La macro de mon fichier permet à chaque ouverture du fichier, d'incrémenter la cellule B12 de 1, et à la fermeture du fichier, de créer un nouveau fichier xlsx avec le numéro incrémenté dans le nom de fichier.
Option Explicit
Private Sub Workbook_Open()
Range("E12") = Range("E12") + 1
ActiveWorkbook.Save
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Chemin As String, Numéro_facture As Integer

Chemin = ActiveWorkbook.Path
Numéro_facture = Range("E12")
Application.DisplayAlerts = False

ActiveWorkbook.SaveAs Filename:= _
Chemin & "\Facture " & Numéro_facture & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

End Sub


J'ai enregistré mon fichier d'origine au format ods.

Quelle est la démarche à suivre pas à pas pour pour obtenir le même résultat qu'avec mon fichier Excel ?
PS: Je n'y connais rien en macro, codes, etc... ;-)

Mil merci pour votre aide.

A voir également:

1 réponse

valttt Messages postés 279 Date d'inscription mercredi 7 mars 2012 Statut Membre Dernière intervention 27 octobre 2024 16
Modifié par valttt le 29/06/2016 à 10:58
J'ai trouvé sur Internet, un site (https://www.business-spreadsheets.com/vba2oo.asp qui propose de convertir les codes VBA vers Basic Office.

Pour commencer, le code obtenu est-il correct ?

Option Explicit
Private Sub Workbook_Open()
Dim oSheet as Object[n]oSheet = ThisComponent.CurrentController.ActiveSheet[n]oSheet.getCellRangeByName($1)("E12") = Dim oSheet as Object[n]oSheet = ThisComponent.CurrentController.ActiveSheet[n]oSheet.getCellRangeByName($1)("E12") + 1
ThisComponent.Save
End Sub
$1.Close(False)(Cancel As Boolean)
Dim Chemin As String, Numéro_facture As Integer
Dim URLStr as String[n]Dim $1 as String[n]GlobalScope.BasicLibraries.LoadLibrary("Tools")[n]URLStr = ThisComponent.getURL()[n]$1 = DirectoryNameoutofPath(URLStr, ""/"")
Numéro_facture = Dim oSheet as Object[n]oSheet = ThisComponent.CurrentController.ActiveSheet[n]oSheet.getCellRangeByName($1)("E12")
Application.DisplayAlerts = False
ThisComponent.SaveAs Filename:= _
Chemin & "\Facture " & Numéro_facture & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End Sub


PS: Je souhaite obtenir la création d'un fichier ODS à la fin, car je ne veux plus de format Excel.

Merci pour votre aide...
0