Poser votre question
0

fonction excel .xla sur libreoffice ?

posée 2021-01-18 00:16:22 +0200

Image Gravatar de nawal

bonjour :) 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 :(

éditer requalifier signaler fermer fusionner supprimer

1Réponse

0

répondue 2021-01-18 11:18:22 +0200

Image Gravatar de pierre-yves samyn

updated 2021-01-20 13:24:29 +0200

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

éditer signaler supprimer permalien plus

Commentaires

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

Image Gravatar de nawalnawal ( 2021-01-20 12:16:50 +0200 )éditer

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 ,

Image Gravatar de nawalnawal ( 2021-01-22 09:34:56 +0200 )éditer

@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

Image Gravatar de pierre-yves samynpierre-yves samyn ( 2021-01-22 12:00:16 +0200 )éditer

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 :( 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

Image Gravatar de nawalnawal ( 2021-01-22 21:14:47 +0200 )éditer

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

Image Gravatar de nawalnawal ( 2021-01-22 21:47:21 +0200 )éditer

@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...

Image Gravatar de pierre-yves samynpierre-yves samyn ( 2021-01-23 11:16:35 +0200 )éditer
S'identifier/S'inscrire pour répondre

Outils de question

1 suiveurs

Stats

Posée: 2021-01-18 00:16:22 +0200

Consultée: 34 fois

Mise à jour: Jan 20