Le 25/08/06, MORTEVEILLE Roselyne - DDE 44/GER/Voies Rapides <
[EMAIL PROTECTED]> a écrit :

Hélas non il semble que les macros soient rattachées dans l'openoffice
pour
tous les modules et non pour un document ou une base. D'ailleurs depuis
mon
problème d'arrêt de ma base par Ctrl Alt Suppr - Gestionnaire des tâches
et
bien je ne peux plus visualiser mes macros dans openoffice alors que je
les
retrouve sur mon disque dans le répertoire Documents And Settings -
Application Data - OpenOffice - user - Basic - elles ont toutes une
extension .xba avec dans ce même dossier deux fichiers script.xlb et
dialog.xlb. Je ne sais pas comment retrouver l'affichage dans openoffice.
Je
pense ou j'espère qu'il y a moyen de récupérer les macros mais aussi qu'il
y
a une possibilité de pouvoir les enregistrer dans son propre document ou
sa
base. En tout cas je n'ai pas trouvé de solution à mes deux problèmes.
Si tu as une idée je suis preneuse.


bonjour,
en ce qui concerne la récupération de tes macros perdues, je n'ai pas
d'idée.
Par contre, lorsque je travaille sur un formulaire intégré dans un document
Base (donc inclus dans le fichier .odb), je peux tout à fait enregistrer la
macro dans le formulaire :
depuis le formulaire ouvert en mode édition :
Outils > Macros > Gérer les macros > OpenOffice.org Basic
j'ai bien :

+ Mes Macros
+ Macros OpenOffice.org
+ NomDuFichierDuFormulaire

si j'édite une macro dans NomDuFichierDuFormulaire, elle est incluse dans le
formulaire et donc est inscrite dans le fichier .odb.
Par contre, il n'est pas possible de sauvegarder des macros au niveau du
document .odb lui même.

Ensuite, voici l'exemple de macro pour filtrer les données présentées dans
un formulaire.

1 - créer un formulaire tout simple lié à la table que tu veux consulter
(t_depverte)
2 - avec le navigateur de formulaire, note le nom du formulaire principal
(par défaut, c'est MainForm, mais tu peux le renommer à ta guise, ne pas
confondre avec le nom du fichier formulaire)
3 - en mode édition de formulaire, rajoute un champ texte et de même note
son nom
4 - depuis la fenêtre du formulaire :
Outils > Macros > Gérer les macros > OpenOffice.org Basic
sélectionne le noeud qui porte le nom du fichier formulaire, puis Standard ,
puis nouveau, tu peux garder le nom par défaut :Module 1
5 - code de la macro :
<code>
Sub fabriqueFiltreFormulaire(oEvent As Object)
 Dim oDataForm As Object
 Dim strFiltre As String
 Dim strNomForm As String
 Dim strNomChamp As String

 strNomForm = "nomDuFormulaire" 'ici, mettre le nom du formulaire principal
 strNomChamp = "nomDuChamp" 'ici, mettre le nom du champ qui sert de
critère de filtrage
 oDataForm = thiscomponent.drawpage.Forms.getByName(strNomForm)
 strFiltre = strNomChamp & " LIKE '" & oEvent.Source.Text & "%'"
 oDataForm.Filter = strFiltre
 oDataForm.reload
End Sub
</code>
Attention, fait un copier coller ou soit très soigneuse, il y  a parfois un
guillemet simple suivi d'un guillemet double dans le code ci-dessus.
6 - sauvegarde de la macro
7 - en mode édition de formulaire, clic droit sur le champn de texte, onglet
événements, assigner fabriqueFiltreFormulaire à l'événement Texte modifié
8 - sauver le formulaire, l'ouvrir en mode utilisation, le texte que tu
rentre dans le champ sert à filter les enregistrements affichés
(normalement)
9 - pour voir tous les enregistrements, effacer le texte présent dans le
champ de filtrage.

Bon courage.

PS 1 : il faut mieux créer un nouveau fil pour chaque question
PS 2 : un titre un peu plus significatif est utile pour ceux qui font des
recherches dans les archives.

Bonne journée

Répondre à