[prog] Calc et case à cocher pour une nulle

2010-05-03 Par sujet nimel

Bonjour,
Ben non décidément je dois pas être douée, rien à faire je n'arrive pas 
à progresser avec l'API, malgrès Xray et les différentes doc. Dès que je 
crois comprendre et que je tente une solution ça ne marche pas. Les 
exemples que j'ai eu je ne les comprend pas, il y a des histoires 
d'haricots (beans) que je ne trouve expliquées nulle part !


Mon but ultime :
Dans une feuille Calc, il y a une case à cocher par ligne. Chaque ligne 
contient de multiples données réparties sur plusieurs colonnes.
Quand l'utilisateur coche la case, il faut que la cellule adjacente se 
remplisse avec oui et que le texte de la ligne concernée devienne rouge.
Je suis d'accord que je pourrais le faire rien qu'avec le contrôle de la 
cac et du formatage conditionnel. Mais le soucis c'est qu'il y a plus de 
200 lignes à faire et à priori on ne peux pas faire des copier/coller 
relatifs avec des éléments de formulaire ! J'ai donc pensé qu'il était 
plus judicieux se baser sur la position du focus au moment où on coche 
la case.


J'ai tenté tout un tas de trucs et je m'y suis perdu.
Voilà en dernier ce que j'ai fait de mieux (ou moins pire):

Sub ValidChoix
Dim MonDoc As Object
Dim MaCac As Object
Dim MaCel As Object
MonDoc = ThisComponent
MaCac = MonDoc.form.component.CheckBox.getCurrentComponent() ' suis 
pas sure que ce soit getCurrentComponent qu'il faille utiliser *
' MaLigne et MaCol = Récuperer les coordonnées où se trouve MaCac je 
ne sais pas encore comment 

MaCel = MonDoc.getCellByPosition(MaCol+1,MaLigne)
MaCel.String = oui
' et là ça suffira avec Basic, le reste je le fais en formatage 
conditionnel via le remplissage oui/non de la cellule 

End Sub

Ça me renvoie une insulte : propriété ou méthode non trouvé : form.
Pourtant Xray me dit que MonDoc a bien le service 
com.sun.star.form.component.CheckBox.


Quelqu'un peut -il m'expliquer ? (si si, des fois je comprend ;) )
Nicole de Bordeaux.


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Calc et case à cocher pour une nulle

2010-05-03 Par sujet Agnès Simonet

nimel a écrit :


Bonjour,
Ben non décidément je dois pas être douée, rien à faire je n'arrive pas 
à progresser avec l'API, malgrès Xray et les différentes doc. Dès que je 
crois comprendre et que je tente une solution ça ne marche pas. Les 
exemples que j'ai eu je ne les comprend pas, il y a des histoires 
d'haricots (beans) que je ne trouve expliquées nulle part !


Mon but ultime :
Dans une feuille Calc, il y a une case à cocher par ligne. Chaque ligne 
contient de multiples données réparties sur plusieurs colonnes.
Quand l'utilisateur coche la case, il faut que la cellule adjacente se 
remplisse avec oui et que le texte de la ligne concernée devienne rouge.
Je suis d'accord que je pourrais le faire rien qu'avec le contrôle de la 
cac et du formatage conditionnel. Mais le soucis c'est qu'il y a plus de 
200 lignes à faire et à priori on ne peux pas faire des copier/coller 
relatifs avec des éléments de formulaire ! J'ai donc pensé qu'il était 
plus judicieux se baser sur la position du focus au moment où on coche 
la case.




Bonjour,

La question que je me pose c'est comment as-tu crée tes 200 cases à cocher ?

En tout cas, je sais que les formulaires se trouvent sur ce qu'on 
appelle la page de dessin de la feuille, à laquelle on accède par DrawPage.


Donc pour accéder à une case à cocher case1 faisant partie d'un 
formulaire form1 dans une feuille feuille1 on doit faire ceci :

monDocument=thisComponent
lesFeuilles=monDocument.Sheets
maFeuille = lesFeuilles.getByName(feuille1)
maPageDessin = maFeuille.DrawPage
leFormulaire = maPageDessin.Forms.getByName(form1)
laCac = leFormulaire.getByName(case1)

Pour savoir si la case est cochée ou non, on regarde laCac.state qui est 
FALSE ou TRUE.


En espérant que ça aide à démarrer.
Agnès S.


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org