

![]() | 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: |
5 messages in org.openoffice.fr.progRe: [prog] Lancement automatique de m...| From | Sent On | Attachments |
|---|---|---|
| m.gr...@cnafmail.fr | Sep 19, 2007 5:05 am | |
| Francois Gatto | Sep 19, 2007 9:43 pm | |
| SEGUIN François | Sep 19, 2007 11:33 pm | |
| m.gr...@cnafmail.fr | Sep 23, 2007 11:18 pm | |
| m.gr...@cnafmail.fr | Sep 23, 2007 11:21 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: | Re: [prog] Lancement automatique de macro | Actions... |
|---|---|---|
| From: | m.gr...@cnafmail.fr (m.gr...@cnafmail.fr) | |
| Date: | Sep 23, 2007 11:21:08 pm | |
| List: | org.openoffice.fr.prog | |
Bonjour,
Merci pour ces renseignements précieux.
Michel GRIMAULT
SEGUIN François <fseg...@wanadoo.fr> a écrit sur 20/09/2007 08:33:24 :
Bonjour
Pour réaliser une macro lorsque tu change le contenu d'une cellule il faut mettre en place un LISTENER voici un exemple de code qui change la couleur des cellules en fonction d'une modification de valeur de celle-ci. Je suis parti du code fourni il y a quelques mois lors d'une demande précédente sur le sujet.
François
Option Explicit
Global oListener As Object 'Objet d'acces au LISTENER Global oCell As Object 'Object d'acces au cellule d'une feuille
Rem Exécuter cette macro démarre l'interception d'événement lors du changement de valeur de cellule Sub Example_SelectionChangeListener
Rem * DECLARATION DES VARIABLES dim oDoc as object 'Objet d'acces au document en cours dim oSheet as object 'Objet d'acces au feullies CALC dim sTypeListener 'Objet d'acces au Type DE LISTENER
Rem * AFFECTATION DE LA VARIABLE D'ACCES AU DOCUMENT ODoc = Thiscomponent
Rem * AFFECTATION DE LA VARIABLE D'ACCES A LA FEUILLE DE CALCUL oSheet = oDoc.Sheets.getByName( "Feuille1" )
Rem * AFFECTATION DE LA VARIABLE D'ACCES AUX CELLULES A ECOUTER oCell = oSheet.getCellRangeByName( "A10:A20" )
Rem * MISE EN PLACE LISTENER sTypeListener = "com.sun.star.util.XModifyListener" oListener = CreateUnoListener( "CellEvent_", sTypeListener )
oCell.addModifyListener( oListener )
End Sub
Rem Cet évennement est executé lors de chaque modification de la cellule Sub CellEvent_Modified( oEvent )
Rem * APPEL DU PROGRAMME DE CHANGEMENT DE COULEUR Call Main
End Sub
Rem Désactiver l'écouteur Sub CellEvent_Disposing( oEvent ) msgbox "Fin d'écoute du listener" End Sub
Rem A executer pour supprimer l'écouteur Sub Remove_Listener 'http://api.openoffice. org/docs/common/ref/com/sun/star/util/XModifyBroadcaster. html#removeModifyListener oCell.removeModifyListener( oListener ) End Sub
sub Main rem
---------------------------------------------------------------------- rem define variables dim document as object
rem get access to the document document = ThisComponent.CurrentController.Frame
Dim ValeurCellule as Integer 'Mémorise la valeur de la cellule à colorier Dim MaCellule as Object Dim i as Integer
For i = 1 to 11 MaCellule = ThisComponent.Sheets.getByName("Feuille1").getCellByPosition(0,8+i) ValeurCellule = MaCellule.String Select Case ValeurCellule Case 0 MaCellule.CellBackColor = 16711680 Case 1 MaCellule.CellBackColor = 16724736 Case 2 MaCellule.CellBackColor = 16737792 Case 3 MaCellule.CellBackColor = 16750848 Case 4 MaCellule.CellBackColor = 16763904 Case 5 MaCellule.CellBackColor = 16776960 Case 6 MaCellule.CellBackColor = 13827846 Case 7 MaCellule.CellBackColor = 10878727 Case 8 MaCellule.CellBackColor = 7929608 Case 9 MaCellule.CellBackColor = 4980489 Case 10 MaCellule.CellBackColor = 2031370 Case Else MaCellule.CellBackColor = -1 End Select Next i EndSub
----- Original Message ----- From: <m.gr...@cnafmail.fr> To: <pr...@fr.openoffice.org> Sent: Wednesday, September 19, 2007 2:06 PM Subject: [prog] Lancement automatique de macro
Bonjour,
J'aurais souhaité connaître la procédure pour lancer une macro lors du changement de sélection d'une cellule. Dans Excel, au niveau d'une feuille, il existe une macro "Worksheet_SelectionChange(ByVal Target As Excel.Range)" qui est appelée au changement de sélection.
Comment faire avec OpenOffice ?
Par ailleurs, j'ai la même question à propos du lancement automatique dès qu'un calcul est effectué. Dans Excel, c'est également au niveau de la feuille avec la macro "Worksheet_Calculate()"
Là encore, comment faire avec OpenOffice ?
D'avance merci.
Michel GRIMAULT
--------------------------------------------------------------------- To unsubscribe, e-mail: prog...@fr.openoffice.org For additional commands, e-mail: prog...@fr.openoffice.org
---------------------------------------------------------------------------------------
Orange vous informe que cet e-mail a ete controle par l'anti-virus mail. Aucun virus connu a ce jour par nos services n'a ete detecte.







