Base (les macros)

Utilisation de macros dans Base

1. Introduction - Limitations

La possibilité dans Base de se déplacer de formulaire en formulaire n’est possible qu’avec des macros.

On se limitera sur les pages qui suivent à l’utilisation de macros pour ouvrir/fermer soit un formulaire, soit un rapport.

On suppose que vous avez déjà 2 formulaires appelés respectivement « Formulaire F1 » et « Formulaire F2 » ainsi que 2 rapport « Rapport R1 » et « Rapport R2 ».

 

 

 

2. Activation de macros dans Office Base

Pour éviter la propagation de macro virus, Office Base propose de n’ouvrir les fichiers contenant des macros que si certaines préférences (de Office Base) le permettent.

Si vous voulez que les macros fonctionnent dans un document de type Base, il faut suivr les étapes suivantes :

(1) Cliquer sur le menu « Préférences »

(2 )Choisir « Sécurité » dans le menu  « Libre Office »

(3) Cliquer sur le bouton « Sécurité des macros »

(4) Prendre le choix « Moyen »

(5) Confirmer votre choix en cliquant sur le bouton « OK »

Avec ce choix, Votre Libre Office SI vous avez bien effectué ces étapes, à chaque fois que Libre Office lance une base contenant des macros,  Base demandera à l’utilisateur de confirmer qe c’est bien une base auquelle vous faites confiance en faisant afficher la fenêtre (5). Et vous devrez cliquer sur « Activer les macros »  (6)  pour confirmer

 

3. Lancement de fichier .odb contenant des macros

Si vous avez bien suivi l’activation faite dans l’étape précédente, à  chaque fois que Libre Office lance une base contenant des macros,  Base demandera à l’utilisateur de confirmer qe c’est bien une base auquelle vous faites confiance en faisant afficher la fenêtre

(1) Cette fenêtre s’affiche au lancement d’un fichier .odb contenant une ou plusieurs macros
(2).Cliquer sur « Activer les macros »  pour confirmer votre confiance totale

 

4. Astuce pour éviter que la question d'activation des macros soit posée à chaque fois pour la même base

 

(1) Cette fenêtre est fastidieuse lorsque l’on est en cours de développement d’une base où l’on est parfois amené à ouvrir le même fichier une bonne dizaine de fois dans la journée.
(2).(3) Il faut éviter de positionner un niveau de sécurité faible.
Il est plutôt intéressant de définir des répertoires (dans votre disque dur ou clef USB) dans lesquels vous avez des bases auxquelles vous avez confiance.
(4) Cliquer sur l’onglet « Sources de confiance »
(5) Demande d’ajouter une source de confiance
(6) (7) Sélectionner le dossier où se trouve votre fichier puis cliquer sur le bouton « Ouvrir »
(8) Votre répertoire apparaîtra dans les « Emplacements de fichiers de confiance »
(9) Terminer la manip en cliquant sur le bouton « OK »

5. Création de macros dans une base ne comportant aucune macro

 (1) On suppose que l’on veut mettre les macros suivantes dans une Base (par exemple, Essai.odb)

Sub OuvrirFormulaire(nomFormulaire as String)
'Ouvre le formulaire dont le nom est donné en paramètre
	ThisDatabaseDocument.FormDocuments.getByName(nomFormulaire).open
End Sub
Sub FermerFormulaire(nomFormulaire as String)
'Ferme le formulaire dont le nom est donné en paramètre
	ThisDatabaseDocument.FormDocuments.getByName(nomFormulaire).close
End Sub
Sub OuvrirRapport(nomRapport as String)
'Ouvre le rapport dont le nom est donné en paramètre
	ThisDatabaseDocument.FormDocuments.getByName(nomRapport).open
End Sub
Sub FermerRapport(nomRapport as String)
'Ferme le rapport dont le nom est donné en paramètre
	ThisDatabaseDocument.ReportDocuments.getByName(nomRapport).close
End Sub

(2) Copier le texte des macros ci-dessus dans le presse-papier avec command-C  (sur le Mac)
(3) Cliquer sur Outils/Macros/Gérer des macros/Libre Office Basic …
(4) La fenêtre « Macros Libre Office » va s’ouvrir
(5) Sélectionner le fichier dans lequel vous voulez céer des macros (ici, Essai.odb)
(6) Cliquer sur « Nouveau »


(7) La fenêtre « Nouveau module » s’ouvre et vous propose « Module1 » comme nom de module
(8) Laisser « Module1 » comme nom par défaut de module (c’est là où Base cherchera les macros associées à un fichier .odb)
(9) Valider en cliquant sur le bouton « OK »
(10) La fenêtre Essai.odb.Standard va s’ouvrir
(11) Effacer le lignes 3 à 5 contenant la macro « Main » par défaut créée par Libre Office
(12) Coller le contenu du presse-papier qui contient le texte de quelques macros principales

 

(13) Voici le résultat obtenu
(14) On voit le texte des macros collées
(15) C’est à partir de ces lignes 23-24 que vous pourrez ajouter les autres macros que vous personnaliserez.

Vous pouvez revenir à cet endroit en faisant les étapes (3) (5).

(16) Après avoir collé votre programme, il ne faut surtout pas oublier de cliquer sur l’icône de la disquette pour sauvegarder le texte des macros dans votre fichier .odb
(17) L’icône de la disquette est grisée quand le programme modifié par vos soins a été sauvegardé
(18) N’hésitez pas à utiliser le menu « File/Save’ pour sauver votre base de temps en temps.

 

 

6. Création d'une macro "Ouvrir_Formulaire_F2_Fermer_Formulaire_F1"

Il s’agit de créer une macro permettant d’ouvrir le formulaire « Formulaire F2 » puis de fermer (la fenêtre montrant) le formulaire « F1 »
Cette macro est généralement appelée par un bouton B qui sera placé sur le formulaire F1.
Lorsque l’on clique sur le bouton B, la macro se charge :
– d’ouvrir le formulaire « Formulaire F2 »
– puis de refermer le formulaire « Formulaire F1 »

On pourra appeler cette acro « Ouvrir_Formulaire_F2_Fermer_Formulaire_F1« .
Son code sera le suivant :

Sub Ouvrir_Formulaire_F2_Fermer_Formulaire_F1()
  ' Ouvre le formulaire "Formulaire F2" 
  ' puis ferme le formulaire "Formulaire F1"
    OuvrirFormulaire("Formulaire F2")
    FermerFormulaire("Formulaire F1")
End Sub

Cette macro devra être placée dans le module « Module1 » des macros associées à votre fichier Essai.odb

(1) Il s’agit du nom de votre macro.
(2) Il ne faut pas oublier de mettre la parenthèse ouvrante puis fermante pour indiquer que votre macro  n’a pas besoin de paramètres pour se lancer
(3) Le quote (caractère sous la touche 4 du clavier Mac) mis en début de ligne indique que le texte qui le suit est un comentaire
(4)  On indique entre gulllemets le nom exact du formulaire à ouvrir, ici « Formulaire  F2 »
(5)  On indique entre gulllemets le nom exact du formulaire à fermer, ici « Formulaire  F1 »

On suppose maintenant que ce code  (que vous avez créé dans un éditeur de texte)  se trouve dans le presse papier

(6) Pour accéder à cette fenêtre, il faut cliquer sur Outils/Macros/Gérer des macros/Libre Office Basic …
(7) Sélectionner « Moule1 » de votre base « Essai.odb »
(8) Cliquer sur « Editer »

(9) La fenêtre « essai.odb.standard » va apparaître
(10) Cliquez à la fin du texte de vos macros pour mettre un point d’insertion
(11) Et voilà le résultat.
(12) Ne pas oublier de sauvegarder vos modifications

 

 

 

 

 

7. Assignation d'une macro à un bouton B

(1) On suppose que ce bouton B se trouve sur le formulaire « Formulaire F1 ».
(2) Faire un Clic droit sur le bouton dans le formulaire « Formulaire F1 » en mode édition et choisir « Contrôle .. »

(3) Le nom du bouton est « B » et l’étiquette est « Aller en Formulaire F2 » (dans notre cas)
(4) Cliquer sur l’onglet « Evénements »
(5) Cliquer sur le bouton « … » correspondant à la ligne « Exécuter l’action »

(6) Apparition de la fenêtre « Assigner une action » avec sélection de l’événement « Exécuter l’action »
(7) Cliquer sur le bouton « Macro… »
(8) Apparition de la fenêtre « Sélecteur de macro »
(9) Développer le contenu de « Essai.odb »
(10) Sélectionner « Module1 » car votre macro s’y trouve
(11) Sélectionner votre macro, ici « Ouvrir_Formulaire_F2_Fermer_Formulaire_F1 »
(12) Valider en cliquant sur le bouton « OK »

(13) Si votre manipulation s’est bien déroulée, vous devriez voir
(14) Cliquer sur « OK » pour sortir
(15) C’est ce que vous devriez voir quand vous demandez les propriétés de votre bouton