

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
9 messages in org.openoffice.fr.prog[prog] ContrôleTable > macro navigation | From | Sent On | Attachments |
|---|---|---|
| Jovial | Mar 20, 2005 3:44 am | |
| Jovial | Mar 20, 2005 11:47 am | |
| Alain Nowak | Mar 21, 2005 12:28 am | |
| Jovial | Mar 21, 2005 1:20 am | |
| Alain Nowak | Mar 21, 2005 6:39 am | |
| Jovial | Mar 22, 2005 3:07 am | |
| Jovial | Mar 22, 2005 5:51 am | |
| Bernard Marcelly | Mar 22, 2005 11:25 am | |
| Jovial | Mar 22, 2005 3:49 pm |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | [prog] ContrôleTable > macro navigation | Actions... |
|---|---|---|
| From: | Jovial (o.jo...@free.fr) | |
| Date: | Mar 20, 2005 3:44:35 am | |
| List: | org.openoffice.fr.prog | |
Bonjour :-)
J'ai une feuille calc dans laquelle j'ai placé un control de table. J'ai ajouté une série de bouton A B C ... Z et une macro qui va au 1er champ commençant par la lettre du bouton. Ca fonctionne mais j'ai 2 choses à améliorer:
1- Avec le code que j'ai produit ,le temps de réponse est 2/4 secondes sur une table DBase de 200 enregistrements( sur P650mz), peut on trouver quelque chose plus rapide ?
2- Dès que je me connecte à la source, je perds la barre de navigation de mon formulaire, je la retrouve seulement en cliquant sur un champ du tableControl.. Comment pourrai je faire pour sélectionner par macro l'élément de la colonne NOMAFFICHE sur la ligne 24 > absolute(24)
Jluc
Ci joint pour info la macro
Sub AllerLettreTable(evenement as object) dim maRequete As Object, resuQuery As Object dim LeLibelle As String, LePrix As Double, instrSQL As String dim nbLignesEcrites As Long, indexP As Long, x As Long MonDocument = ThisComponent 'Sélectionne le document en cours MaFeuille = MonDocument.CurrentController.ActiveSheet ' sélectionne la feuille activée DrawPage = MaFeuille.DrawPage 'sélectionne la partie graphique de la feuille Form = DrawPage.Forms.GetByIndex(0)'sélectionne les contrôle de formulaire Control = Form.getByName("TableControl")'sélectionne le controle par son nom 'xray.xray Control
'on s'assure que le ControlTable est ordonné sur la colonne NOMAFFICHE 'print Control.Parent.order Qte = chr(34)' valeur ascii du quote: " OrdreTriCol = Qte & "OCarnetAdr1" & Qte & "." & Qte & "NOMAFFICHE" & Qte '"OCarnetAdr1"."NOM" if Control.Parent.order <> OrdreTriCol then 'Control.Parent.order =OrdreTriCol '> sans effet sur le grill Form.order = OrdreTriCol 'on ordonne la Table Form.reload '> on recharge la forme Exit sub End if
'On récupére la lettre du bouton LettreAlpha = evenement.source.Model.Label 'Lettre du control 'print LettreAlpha
ConnecterSource 'on cherche la postion de l'élément qui commence par la lettre maRequete = maConnexion.createStatement() resuQuery = maRequete.executeQuery("select * from OCarnetAdr1 order by NOMAFFICHE") x=0 FinRecherche =0 While resuQuery.next x=x +1 'print resuQuery.Columns(0).string if FinRecherche =0 then if left(resuQuery.Columns.getByName("NOMAFFICHE").string,1)=LettreAlpha then 'xray.xray resuQuery.Columns 'print resuQuery.Columns.getByName("NOMAFFICHE").string, x FinRecherche =1 IndexLettre = x end if End if wend 'print IndexLettre,IndexLettre+24,x
'Gestion affichage dans ControlTable If FinRecherche = 0 then 'si pas trouvé beep End if if IndexLettre + 24 < x then '24 = nbrlign du grill - 1
Form.Absolute(IndexLettre+24) Form.Absolute(IndexLettre) Else 'si on est hors index table on affiche le dernier Form.Last Form.Absolute(IndexLettre) End if
DeconnecterSource 'end if End Sub







