Page 1 sur 1

Recopie d'une macro

Publié : 29 août 2006 18:18
par deadhunter
Salut à tous,

J'ai eu 4 macros fournies dans un fichier calc.
Lorsque je fais un copier coller de ces macros et que je colle le tout dans un nouveau module d'un nouveau classeur. Mes macros ne fonctionnent pas.
Donc, pour l'instant je fais un copier coller du fichier et je travaille sur la copie que je renomme.

Pourquoi le copier coller des macros ne fonctionnent pas ?
Je précise au cas ou, qu'il y a des listener, une boite de dialogue.

D'avance merci, car débutant dans le basic de OoO, j'ai l'habitude de faire des copies de macros pour tester le tout.

Publié : 30 août 2006 06:16
par Pierre-Yves Samyn
Bonjour

Plusieurs pistes possibles :

- Noms différents (classeur, feuilles, plages nommées) dans les macros.

- "Politique" de sécurité choisie : par exemple un classeur enregistré dans un dossier "de confiance" et l'autre pas

- Listener déclenché "sur ouverture" du classeur et donc, coller les macros dans un nouveau classeur ne suffit pas : il faut associer à l'événement la macro qui démarre le listener (se fait par Outils Personnaliser Evénement). Dans ce cas la macro s'exécutera à la prochaine ouverture (on peut néanmoins la lancer "à la main")

- Plus improbable (mais déjà rencontré sur ce forum) : recopie apparemment correcte du code mais contenant en fait des caractères parasites.

Publié : 30 août 2006 06:40
par deadhunter
Bonjour,

Les noms de feuilles ou de classeurs sont récupérés dans la macro.
Le listener est déclenché lors de la modif' d'une cellule. La macro se lance bien à l'ouverture du classeur.
J'ai éssayé la copie sur plusieurs machines différentes et j'ai toujours le même probléme.

Je vais essayer de copier le code ligne par ligne.

Publié : 30 août 2006 07:29
par Dude

Publié : 30 août 2006 09:38
par deadhunter
Hélas, ce n'est que la version 2.0.0 que nous avons.
Travaillant dans l'administration, on a fait la bascule d'excel vers OoO mais hélas, nous n'avons pas les mis à jour intermédiaire. dur dur.
Je suis en train de réécrire la macro, comme cela, je test quelques trucs.

Merci en tout cas pour vos réponses.

Publié : 30 août 2006 10:12
par Dude
deadhunter a écrit :Hélas, ce n'est que la version 2.0.0 que nous avons.
Je comprends mais si j'étais toi, je ferais le test avec une 2.0.3 afin d'écarter ce problème de copier/coller définitivement.

Publié : 30 août 2006 11:51
par deadhunter
J'ai récupéré le fichier, je l'ai testé sur la machine du bureau. RAS
J'ai fait un copier coller du fichier, renommer ce dernier et tester la macro : RAS
Je fais un copier coller de la macro. Rien ne se passe.
J'ai réecrit la macro. rien ne se passe.

Le probléme peut-il venir de la macro.
Je la mets en copie au cas ou : http://user.services.openoffice.org/fr/ ... 044327.ods

D'avance merci.

Publié : 30 août 2006 12:00
par Dude
Avant d'exécuter quoi que ce soit. Il faudrait nous dire :
- ce que fait ta macro
- comment on procède

Publié : 30 août 2006 12:24
par deadhunter
C'est une macro qui m'a été fourni par Pierre-Yves Samyn.

J'avais demandé de l'aide pour une macro qui lorsque l'on mets V dans une colonne, mets à jour une date avec une durée définis dans une autre colonne.
Le tout sur toutes les feuilles de mon classeur.

Voici les 2 posts :
http://user.services.openoffice.org/fr/ ... c2009.html
http://user.services.openoffice.org/fr/ ... c2018.html

Publié : 30 août 2006 16:00
par Pierre-Yves Samyn
Bonjour

J'ai récupéré et testé le classeur joint : RAS tout fonctionne
J'ai ensuite copié tout le texte du module puis
Création d'un nouveau classeur
Lancement Outils Macros Gérer les macros OpenOffice Basic
Création d'un nouveau module
Edition de ce module et remplacement de la procédure Main (vide) existante par le collage.
Enregistrement du classeur (indispensable).

Dès lors le programme est opérationnel (c'est-à-dire que si on lance la macro PysReconduitAjout cela fonctionne).

Ce qui manque, comme je le disais dans le message précédent, c'est l'association à l'événement "Ouverture du document" de la macro.
Lancer la commande Outils Personnaliser onglet Evénement.
Vérifier dans la liste déroulante en bas du dialogue que le nom du nouveau classeur est bien sélectionné
Sélectionner la ligne "Ouverture de document"
Cliquer sur Assigner la macro, attendre un instant qu'un dialogue s'affiche (peut sembler long la première fois)
Déplier l'arborescence sur le nom du classeur dans la colonne Bibliothèque jusqu'à retrouver le nom de la macro PysReconduitAjout
Sélectionner le et valider les dialogues.

Vous pouvez enregistrer le classeur, le fermer puis le rouvrir : la macro doit être opérationnelle.

Je dois m'absenter pour une dizaine de jours et ne pourrai donc répondre immédiatement en cas de problème...

Publié : 30 août 2006 21:57
par deadhunter
Un grand merci. Voici ce qui manquait.
Décidement OpenOffice est plein de surprise. Je viens de relire le post et j'ai enfin compris ce que tu voulais dire dans ta premiere reponse.
Le pb est que l'aide est un peu légére et que je raisonne encore comme si je travaillait sous Excel et au niveau de la prog, cela n'a plus rien à voir.
Je n'ai pas fini de venir poser mes questions :lol:

Encore un grand merci à toi, à Dude.

Encore merci.