Fonction excel .xla sur libreoffice?

bonjour :slight_smile: je suis nouvelle utilisatrice de excel et moi qui n’aime pas trop windows , je préfère linux pour sa stabilité , je voudrai savoir si il est possible de retrouvé mes fonctions , par ex j’ai une fonction "add ins’’ que j’ai rajouté sous excel , qui ce nomme irg2020.xla et qui m’aide beaucoup dans mon travail , et si il est possible que je puisse mettre cette fonction aussi sur libreoffice , cela me m’aidera à d’oublié une bonne foi pour toute windows; et me tourné sur linux , rien qu’hier je me suis retrouvé avec un écran bleu sous windows , et je me suis dis , quitte a refaire mon travail , je le refais plus sous windows , mais sur mint et libreoffice; merci de me trouvé un moyens , et avec un langage tout simple si possible :frowning:

Bonjour @nawal

LibreOffice permet également d’ajouter des fonctions. Dans le “monde” LibreOffice ces “add-ins” sont nommés extensions. On ajoute ces dernières via le menu OutilsGestionnaire des extensions de LibreOffice. Dans ce dialogue tu trouveras le lien vers le site qui regroupe les extensions publiées.

Je ne connais pas irg2020.xla mais je doute toutefois que tu y trouves l’équivalent.

Une autre piste pourrait être la section Projets du forum Apache. Au pire, si tu ne trouves pas de projet équivalent, tu pourrais y exposer ta demande au cas où cela inspirerait certains participants.

[Ajout 20-01-20 13:10]

Une fonction de ce type peut être créée dans un module Basic et appelée depuis une cellule.

Pour créer la macro :

  • menu OutilsMacrosGérer les macrosBasic : un dialogue s’ouvre, avec en principe le nom du classeur courant sélectionné
  • Cliquer Nouveau : un dialogue s’ouvre pour nommer le module, avec par défaut Module1, appuyer Ok

La fenêtre de l’environnement de développement s’ouvre avec une procédure Main vide par défaut ; tout sélectionner et remplacer par le code suivant.

Function IRG_New(moTr)

moTr = (Int(moTr / 10)) * 10

Select Case moTr 
	Case 0 To 30000:IRG_New = 0 
	Case 30010 To 37500: IRG_New = ((moTr - 30000) / 10) * 2 
	Case 37510 To 43750: IRG_New = 1500 + ((moTr - 37500) / 10) * 1.2 
	Case 43760 To 45000: IRG_New = 2250 + ((moTr - 43750) / 10) * 2 
	Case 45010 To 135000: IRG_New = 2500 + ((moTr - 45000) / 10) * 3 
	Case Is > 135000: IRG_New = 29500 + ((moTr - 135000) / 10) * 3.5 
End Select

End Function

Pour utiliser la fonction dans le classeur, par exemple pour obtenir en B1 le résultat du calcul fait sur la valeur saisie en A1 :

  • sélectionner la cellule où on désire le résultat (B1)
  • taper =IRG_NEW(A1) puis valider

Il faut naturellement autoriser l’exécution des macros pour que le calcul puisse faire. Ceci se paramètre dans OutilsOptionsLibreOfficeSécuritéSécurité des macros.

Plusieurs niveaux de sécurité sont disponibles. Tu pourras naturellement utiliser l’aide pour t’informer sur ces derniers mais mon conseil sera de choisir le niveau Moyen: comme indiqué dans le dialogue Calc demandera systématiquement d’autoriser ou non les macros à l’ouverture du classeur.

Avec cette option, si tu reçois un document contenant des macros dont tu n’es pas sûre tu peux choisir de ne pas activer les macros. Tu peux ensuite ouvrir l’environnement de développement pour inspecter ces macros et si elles sont sûres, tu peux alors recharger le document en autorisant leur exécution.

Voir irg2020.ods

Cordialement

merci mais pourrai-je alors changé cette macro pour qu’elle puisse fonctionner sous libreoffice svp

Function IRG_New(moTr)

moTr = (Int(moTr / 10)) * 10

Select Case moTr Case 0 To 30000: IRG_New = 0 Case 30010 To 37500: IRG_New = ((moTr - 30000) / 10) * 2 Case 37510 To 43750: IRG_New = 1500 + ((moTr - 37500) / 10) * 1.2 Case 43760 To 45000: IRG_New = 2250 + ((moTr - 43750) / 10) * 2 Case 45010 To 135000: IRG_New = 2500 + ((moTr - 45000) / 10) * 3 Case Is > 135000: IRG_New = 29500 + ((moTr - 135000) / 10) * 3.5 End Select

End Function

une erreur de structure du scripte s’est produite lors de l’exécution du scripte standard.Module1.irg_new en basic
svp , vous m’aidez beaucoup et j’admire la rapidité de vos repense , mais je my connais pas en scripte , svp si vous pouvez corrigé ce qu’il ya a corrigé dans le scripte pour que je l’utilise , je viens d’installé mint , et je voudrai bien resté avec mint ,

@nawal Je crains que tu ne surestimes mes capacités de divination en donnant si peu d’information.

Si la procédure fonctionne dans mon classeur exemple et qu’elle génère une erreur dans ton classeur c’est que tu as dû mal recopier le script.

Mon conseil serait que tu recopies le script du classeur exemple plutôt que celui de cette page web.

Cordialement

svp monsieur , une dernier fois sinon , je vais me mettre l’idée dans la téte que linux et libreoffice c’est pas pour ma téte :frowning: j’ai envie d’utilisé cette macro , sur libreoffice , et su vous m’aider mon premier enfant ‘‘pierre’’ comme vous ,et si c’est une fille je l’appel pierre aussi , je voudrai utilisé cette macro dans libre office
Function IRG_New(moTr)

moTr = (Int(moTr / 10)) * 10

Select Case moTr
Case 0 To 30000: IRG_New = 0
Case 30000 To 35000: IRG_New = ((moTr - 30000) / 10) * 8
Case 35000 To 120000: IRG_New = 4000 + ((moTr - 35000) / 10) * 3
Case Is > 120000: IRG_New = 25500 + ((moTr - 120000) / 10) * 3.5
End Select

End Function

elle me permet de calculé l’irg alors svp , essayé de m’expliqué comme a une fille de 15 ans

merci monsieur , vous avez réussi a me rendre mois bête ce soir , j’ai enfin compris , le fichier que vous avez envoyé est super , je sais pas juste comment faire pour appelé cette fonction , d’habitude je fai =irg sur exel et je trouve la fonction dans la liste , et la ! quand je fai =irg , rien ne sors , un grand merci , je vais enfin dir a dieu a windows grace a vous

@nawal en effet, contrairement aux fonctions intégrées (natives) ou aux add-ins, cette technique ne permet d’appeler la fonction en commençant à taper =irg. C’est une limitation : il faut connaître et taper le nom de la fonction en entier. Merci et bravo pour ta persévérance…