Lier un contrôle de formulaire

à une cellule de classeur.

Distribué par

Le projet OpenOffice.org

Table des matières

1 But de ce how-to	3

2 Création du contrôle	3

3 Remplissage de la liste du contrôle	4

4 Mettre en place le code de la macro	5

5 Affecter la macro au contrôle de formulaire :	6

6 Test de la macro.	6

7 Création d'autres Contrôles dans le même classeur	6

8 Prochaine version de OOo	7

9 Crédits	8

10 Licence	8

But de ce how-to

Ce how-to est destiné à des personnes n'ayant aucune connaissance en programmation, mais désirant utiliser les listes de choix des formulaires dans les feuilles de classeurs.

Ce how-to permet également de donner quelques bases sur la création et l'utilisation de Macro.

La macro de ce how-to, permet de lier le contenu d'une cellule au choix sélectionné dans la liste du contrôle de formulaire.

Création du contrôle

Utiliser le 5ième bouton de la barre verticale (Fonctions de formulaire), pour faire apparaître la barre d'outils des fonctions de formulaire.

Utiliser le 8ième bouton en haut (Zone de liste) pour créer une liste de choix.

Créer la liste de la taille souhaitée en faisant glisser la souris.

Lors de l'affichage de l'auto pilote de zones combinées, appuyer sur « Annuler » pour ne pas connecter le contrôle à une source de données.

Remplissage de la liste du contrôle

Sur la feuille de calcul, saisir dans des cellules, les différents choix qui devront apparaître dans la liste (ex : les mois de janvier à décembre)

Sélectionner les cellules et faire « Édition / Copier »

Faire un clic droit sur le contrôle et choisir « Contrôle... » dans le menu.

Cliquer dans la zone « Entrées de liste » et faire « CTRL + V » pour coller le contenu des cellules dans la liste.

Dans la zone « Déroulante », sélectionner « Oui » ou « Non » en fonction de votre besoin.

Dans la zone « Sélection par défaut » entrer le N° de l'option par défaut (0=la 1iere option)

Dans la zone « Complément d'information », indiquer 3 paramètres séparés par un point virgule :

L'adresse de la cellule qui va recevoir le résultat (ex : A3)

Un chiffre qui indique, s'il faut retourner le N° d'ordre de la sélection (0) ou le texte de la sélection (1)

Le nom de la feuille qui contient la cellule (ex : Feuille1)

Ce qui donne pour l'exemple : A3;0;Feuille1

Fermer la fenêtre des propriétés en cliquent sur la croix en haut à droite.

Une fois la liste paramétrée, il est possible de supprimer dans la feuille du classeur les cellules contenant les données.

Mettre en place le code de la macro

Pour coller le code de la macro ci-dessous dans l'éditeur de macros, effectuer les opérations ci-dessous :

Menu « Outil / Macros / Macro... »

Sélectionner le nom de votre fichier dans la liste et cliquer sur « Nouveau »

Valider le nom du module « Module1 » proposé par défaut.

Effacer toutes les lignes écrites par défaut dans l'éditeur Basic (sub main, macro1..)

Coller le code suivant dans l'éditeur Basic.

Modifier éventuellement la valeur de la variable « Parametre » (0 ou 1) suivant votre besoin.

Revenir au fichier Calc.

Sub Liste_OnClick(oEvt as object)

'Le controle qui appel la macro

oControl=oEvt.source

'Le Tag contient le "Complément d'informations" du controle

'Les 3 informations sons séparées par un ;

Separateur=";"

Arguments=split(oControl.model.tag,Separateur)

if ubound(Arguments)<2 then

print "Erreur ->Il doit y avoir 3 arguments dans <Complément d'informations>"

exit sub

endif

CelluleLiee=Arguments(0) 'Adresse de la cellule qui va recevoir le résultat

TypeAffichage=Arguments(1) 'Renvoie le N°(0) ou le texte(1) sélectionné

Feuille=Arguments(2) 'Indique la feuille qui va recevoir le résultat

'oSheet contient l'objet Feuille

oDocument=ThisComponent

oSheet = oDocument.Sheets.getByName(Feuille)

'Affichage du résultat

if TypeAffichage="0" then

oSheet.getcellRangebyName(CelluleLiee).formula = oControl.SelectedItemPos+1

else

oSheet.getcellRangebyName(CelluleLiee).formula = oControl.SelectedItem

endif

End Sub

Affecter la macro au contrôle de formulaire :

Faire un clic droit sur le contrôle et sélectionner le menu « Contrôle... »

Sélectionner l'onglet « Événement »

Cliquer sur « ... » de « Texte modifié(es) ».

Dans la zone « Macros » en bas à gauche, sélectionner le nom de votre fichier puis « Standard », puis « Module1 »

Le nom de la macro doit apparaître dans la fenêtre de droite.

Sélectionner « Liste_OnClick » et cliquer sur le bouton « Assigner »

Cliquer sur « OK » pour valider le changement

Cliquer sur la croix, pour fermer la fenêtre des propriétés du contrôle.

Test de la macro.

Cliquer sur le 6ième bouton en bas de la barre d'outil des fonctions de formulaire pour désactiver le mode conception.

Sélectionner un élément dans la liste du contrôle.

Normalement, la cellule du même nom que le contrôle doit contenir le libellé sélectionné ou la position de celui-ci dans la liste en fonction du paramétrage de la macro.

Création d'autres Contrôles dans le même classeur

Pour créer d'autres contrôles, il suffit de reprendre les chapitres :

2 - Création du contrôle

3 - Remplissage de la liste du contrôle

5 - Affecter la macro au contrôle de formulaire

La macro est commune pour tous les contrôles

Prochaine version de OOo

Dans la prochaine version de OOo qui devrait sortir d'ici 6 à 12 mois, toutes les fonctionnalités de ce how-to seront intégrées en standard sans devoir passer par des macros.

Il sera donc possible de lire des fichiers Excel, comportant des contrôles de formulaires avec des cellules liées sans effectuer aucune modification dans le fichier.

En avant-première (Merci à Christian Ferlet et Patrick Gimberteau), je vous propose ci-dessous, des copies d'écrans des fonctionnalités de cette future version.

Crédits

Auteur: Tony Galmiche

Remerciement :

Laurent Godard, Bernard Marcelly et Paolo Montovani, pour la mise au point de la macro.

Christian Ferlet et Patrick Gimberteau pour les copies d'écran de la prochaine version.

Sophie Gautier et Christian.Hardy pour les relectures de ce how-to.

Intégré par : Sophie Gautier

Dernière modification: 09/12/03

Contacts: Projet Documentation OpenOffice.org http://fr.openoffice.org

Traduction:

Licence

Appendix

Public Documentation License Notice

The contents of this Documentation are subject to the Public Documentation License Version 1.0 (the "License"); you may only use this Documentation if you comply with the terms of this License. A copy of the License is available at http://www.openoffice.org/licenses/PDL.html.

The Original Documentation is Lier un contrôle de formulaire à une cellule de classeur.. The Initial Writer of the Original Documentation is Tony Galmiche Copyright (C) 2003. All Rights Reserved. (Initial Writer contact(s): tony.galmiche@tiscali.fr.

Contributor(s): ______________________________________.

Portions created by ______ are Copyright (C)_________[Insert year(s)]. All Rights Reserved. (Contributor contact(s):________________[Insert hyperlink/alias]).

NOTE: The text of this Appendix may differ slightly from the text of the notices in the files of the Original Documentation. You should use the text of this Appendix rather than the text found in the Original Documentation for Your Modifications.

OpenOffice.org Documentation Project How-To

http://fr.openoffice.org	8

Sophie Gautier

2003-11-05T14:26:45