| ||||||||
Astucien | Bonjour, Dans Libre Office calc, en ouvrant un ficher Excel qui contien une macro gérant l'ouverture du fichier (ouverture sur le signet du mois déterminé par la date d'ouverture), Libre office, pour une question de sécurité neutralise cette macro. On la retrouve dans vba project : Rem Attribute VBA_ModuleType=VBADocumentModule Quel est la syntaxe à adopter ?(il semble que le code VBA de Excel ne soit pas entièrement compatible - option et private ne sont pas compris) Où la placer pour qu'elle s'exécute à l'ouverture ? Cordialement Bertrand
| |||||||
Publicité | ||||||||
| ||||||||
Grand Maître astucien | Bonjour , Effectivement, VBA et OBasic ne sont pas compatibles. Tu trouveras ici une documentation sur la programmation en OBasic, ce qui te permettra de faire les modifications nécessaires. Évidemment, ça demande un effort ... @ + | |||||||
Astucien | Bonjour, merci pour ton lien, mais si j'ai mis ce code, c'est qqn qui me l'aimablement proposé n'y connaissant rien en VBA. C'est pourquoi une aide me serait précieuse. Cordialement Bertrand PS. Je ne suis bon qu'en Qbasic, j'ai bien fait du Fortran IV dans mon jeune temps (il n'y avait pas encore les micro), corrigé du Cobol, mais le Pascal, le C++, ou Python m'est obscure et je m'en sortait bien en Qbasic. Si le code est simple (VBA ou Obasic), je peux le comprendre et qqf l'adapter (le code fourni dans mon premier post, je l'ai adapté pour que le curseur dans la feuille soit à la bonne place). Modifié par denewton le 21/11/2014 18:54 | |||||||
Astucien | Bonsoir, J'aimerai que quelqu'un qui connaisse bien l'équivalent du code VBA d'Excel mis dans le premier post, (VBA = ? Obasic dans Libre Office, je crois) me donne quelques tuyaux pour que le module traduit en Obasic fasse la même chose sous Libre Office Calc. C'est à dire qu'à l'ouverture du classeur, la feuille dont l'onglet est celui du mois courant s'ouvre (il y a 12 onglets dont les titres sont les mois de l'année) et se positionne si possible sur la première cellule libre ici A3 (ce n'est pas parfait), mais comme on est tenu à mettre la date sur une ligne vide, c'est déjà pas mal. J'ai cru comprendre que le mois de la date est MONTH(CURRENT_DATE) ce qui remplacerait Month(Date) en VBA Les formules utilisées dans chaque feuilles et la protection installée pour les protèger (d'origine Excel) fonctionnent très bien. Merci à l'avance Bertrand
Image de l'ouverture du fichier Excel de ce soir, 25 Novembre | |||||||
Petit astucien | Salut le Forum Un début de solution pour sélectionner la feuille selon la date.
Mytå Modifié par Mytå le 26/11/2014 00:16 | |||||||
Astucien | Bonjour, Je vais faire la manip et donne réponse. Merci Bertrand | |||||||
Astucien | bonjour, J'ai mis dans modèle du document la macro (copier coller), et voici ce que ça me répond à l'exécution. J'ai inhibé les macros d'origine Excel en mettant "rem" à chaque ligne, ne sachant pas encore supprimer les macros. La macro LO est-elle à sa bonne place ? (j'ai enlevé dans la macro toutes les majuscules des mois mais ne faut-il pas faire le contraire et rajouter des majuscules dans le nom des onglets ?) Cordialement Bertrand Modifié par denewton le 27/11/2014 10:15 | |||||||
Astucien | Bonjour, J'ai bien réussi à enlever les macros issues de Excel dans VBA project (suppression de VBA Projec). Le résultat est le même. Pourtant il ne reste plus que la macro recopiée. (les majuscules ou les minuscules n'ont aucuns effets secondaires, si non, qu'il faut que les noms correspondent). Qu'y a-t-il de trop ou de pas assez. Les options de sécurité des macros sont au minimum. Là, je calle. Cordialement Bertrand
| |||||||
Astucien | Bonjour, comme je ne sais pas rester tranquille avec un problème : 1- Je ne sais plus supprimer la bibliothèque issue d'Excel, mais je l'ai nettoyée de tous ses ingrédients. J'avais réussi une fois mais je ne sais plus comment pour que supprimer ne soit pas grisé. 2- la macro fournie fonctionne mais il faut l'exécuter à la main : elle ne le fait pas à l'ouverture directement. Comment la rendre automatique à l'ouverture ? Comme elle est faite pour simplifier le travail d'un utilisateur, si elle n'est pas automatique, elle devient inutile car il faut entrer dans les arcanes de Libre Office pour la trouver et l'exécuter. 3-le niveau de sécurité des macros doit être descendu à moyen, si non ça ne marche pas du tout, même en manuel. Libre Office est très prudent même pour ses propres macros... Cordialement Bertrand
| |||||||
Astucien | Bonjour, Si, sous LO je charge un des fameux fichiers XLS, et que je lui garde ce format, il fonctionne très bien pour l'ouverture. Si je le convertis en ODS, c'est là que les ennuis commencent, puisque la macro en VBA n'est plus compatible Obasic. Donc dans un premier temps je charge les fichiers XLS et les sauve en XLS. Quand on aura résolu le PB du démarrage de la macro Obasic équivalente dès l'ouverture, je passerai en totalité en LO. Cordialement Bertrand Je ne mets pas le sujet comme résolu | |||||||
Astucien | Bonjour, je charge les fichiers XLS et les sauve en XLS Ouvrir un .xls avec Calc et travailler dessus sans l'enregistrer préalablement au format .ods va immanquablement vous amener vers une corruption du fichier. A vous de vous organiser pour adapter vos macros. Je vous invite à sauvegarder un fichier sain et, si vous voulez continuer à travailler du xls sur LibO, de le faire sur une copie. Modifié par mjd535 le 28/11/2014 09:34 | |||||||
Astucien | mjd535 a écrit : Bonjour, Comment garder un fichier sain xls qui évolue donc à travers Lo. L'ods issu de cet xls perd la macro Excel ou du moins elle devient inefficace (incompatibilité des codes Vba et Obasic). Faut-il faire une sauvegarde xls puis ods, l'ods devenant le fichier sain et l'xls le fichier de travail ? Cordialement Bertrand | |||||||
Astucien | Bonjour, Il est toujours indispensable de travailler avec le format natif d'une application plutôt que de travailler avec d'autres formats. Cela signifie que si vous ouvrez un document avec 'LibO', le format natif est odt, ods,...
Lorsque vous aurez résolu le problème des macros, travaillez au format Open Document. Modifié par mjd535 le 28/11/2014 14:13 | |||||||
Astucien | Bonjour, si, au risque de corrompre, on travaille avec le fichier XLS sous LiO et qu'on le sauvegarde sous ods et sous xls, j'espère que la macro xls qui est encore fonctionnelle à l'ouverture sous LiO est reconduite en intégralité dans le nouvel xls modifié, si non c'est la galère, car tout le monde n'a pas LiO ou Oo et tout le monde n'a pas excel (question d'OS, linux, windows ou Aple). Cordialement Bertrand | |||||||
Astucien | Bonjour, Si vous faites des allers/retours avec les deux formats, vous aurez des problèmes. LibO ou AOO étant des produits libre s(et gratuits), vous devriez essayer de convaincre vos correspondants de travailler sur le logiciel libre. | |||||||
Astucien | Bonjour, pour rendre automatique le macro à l'ouverture, il faut faire liaison entre l'évenement ouvrir le document et cette macro. (merci à mjd535 et mita et au forum de open office) Attention l'ancienne macro VBA du fichier xls qui fonctionne à l'ouverture sous Libre Office, si on sauvegarde sous ods, sera perdue dans le fichier xls, si on passe de l'ods à l'xls et donc réciproquement la construction de l'automatisme ods n'est pas reconduite dans le fichier xls. Cordialement Bertrand Modifié par denewton le 30/11/2014 20:45 | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|