Faire une Macro

[Résolu/Fermé]
Signaler
Messages postés
245
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
12 octobre 2021
-
Messages postés
245
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
12 octobre 2021
-
Bonjour,

Pourrais ton me donner la marche à suivre pas à pas pour mettre un code Basic libreOffice Calc (que je possède déjà) de façon à ce que ce code (macro) s'exécute automatiquement.
Pardonnez moi si je n'utilise pas le bon jargon...

Merci pour votre aide

4 réponses

Messages postés
1057
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
26 février 2020
200
Pour créer une macro:
- Outils > Macros > Gérer les macros > LibreOffice Basic
- Tu cliques sur la dernière icône qui est suivi du nom de ton fichier
- Sur la droite tu cliques sur le bouton "Nouveau"
- Tu donnes un nom à la macro
- Une fenêtre va s'ouvrir et c'est dedans que tu dois copier le code, entre "Sub Main" et "End Sub".

Comme LibreOffice, Apache OpenOffice est un fork d'OpenOffice.org
Messages postés
245
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
12 octobre 2021
19
Bonsoir et merci beaucoup pour ta réponse. Je reviens demain après avoir fais les essais.
Merci encore et bonne soirée...
Messages postés
1057
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
26 février 2020
200
De rien.
Messages postés
245
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
12 octobre 2021
19
Bonjour à toutes et tous,

J'ai fait la manip, mais cela ne fonctionne pas.
Je m'explique:

1) Mon code est du VBA (venant d'Excel), ce qui explique que cela ne fonctionne pas, forcément !!!
2) Lors de l'enregistrement de mon fichier Excel au format ODS, il à importé ma macro VBA.

Résultat:
1) Comment fait-on pour supprimer l'ancienne macro ?
2) Comment modifier mon code VBA au Basic LibreOffice ?

Pour info, le voilà:
ption 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 & "/home/syl/Factures " & Numéro_facture & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

End Sub


Encore mil merci pour votre aide ;-)
Messages postés
245
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
12 octobre 2021
19
Oups..., le O a été zappé (Option Explicit).

Cette macro permet de :
A l'ouverture du fichier, il y a incrémentation de cellule E12 de +1
A la fermeture du fichier, il y a création d'un fichier (au même endroit) d'un fichier portant le nom de FactureX.xlsx
X représente le numéro incrémenté.
Il n'y a pas de demande d'enregistrement du fichier d'origine à la fermeture.

Je souhaite qu'à la fermeture du fichier, il y ai création d'un nouveau fichier mais non plus en xlsx, mais en ods, puisque je n'utiliserai plus Excel.

MERCIIIIIIIIIIIIIIIII
Messages postés
1057
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
26 février 2020
200 >
Messages postés
245
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
12 octobre 2021

Normal que ça ne fonctionne pas, LibreOffice utilise l'Open Basic et Excel le VBA.
Ça fonctionne parfois mais car le code est similaire mais certaines fonctions sont différentes. Le mieux c'est de voir avec des développeurs, regarde du côté du site https://www.developpez.net/forums/
Messages postés
245
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
12 octobre 2021
19
Merci pour ton aide et tes conseils ;-)