Macro excel vers Libreoffice

valttt Messages postés 321 Statut Membre -  
valttt Messages postés 321 Statut Membre -
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.

1 réponse

  1. valttt Messages postés 321 Statut Membre 15
     
    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