Bonjour,

Bernard Siaud alias Troumad a écrit :
> Bonjour
> 
> J'aimerai rendre actives des cases d'une feuille calc.
> C'est à dire, sans qu'elles aient l'ai de rien, quand on clique dessus,
> que les coordonnées de la case affichée s'inscrivent dans deux cellules.
> Tout en gardant cette fonction active, je souhaite pouvoir modifier le
> contenu de ses cases.
> 
> Est-ce faisable ?
Oui ;-)

Voici un exemple :

option explicit
global oDoc as object
global oMouseClickHandler as object
const iClicksNumber = 1 'nombre de clics à détecter

sub StartMouseClickHandler
  oDoc = ThisComponent.currentController
  oMouseClickHandler = createUnoListener( "MCHApp_",
"com.sun.star.awt.XMouseClickHandler" )
  oDoc.addMouseClickHandler( oMouseClickHandler )
end sub

sub StopMouseClickHandler
  oDoc.removeMouseClickHandler( oMouseClickHandler )
end sub


sub MCHApp_disposing( oEvt )
end sub

function MCHApp_mousePressed( oEvt ) as boolean
  MCHApp_mousePressed = false
end function

function MCHApp_mouseReleased( oEvt ) as boolean
 dim oCurSel as object
 dim oConv as object
 dim iCol as integer, iLig as long
 if oEvt.ClickCount = iClicksNumber then
  oCurSel = thisComponent.CurrentSelection
  oConv = thisComponent.createInstance(
"com.sun.star.table.CellAddressConversion" )
  oConv.Address = oCurSel.getCellAddress
  with oCurSel.RangeAddress
   'Attention si dernière colonne
   iCol = .StartColumn + 1
   if iCol >= 255 then
    msgbox( "Hep ! Limite atteinte.", 48, "OOoups !" )
    iCol = iCol - 1
   end if
   iLig = .StartRow
  end with
  thisComponent.CurrentController.ActiveSheet.getCellByPosition( iCol,
iLig ).String = oConv.UserInterfaceRepresentation
 end if
  MCHApp_mouseReleased = false
end function

Francois Gatto

NB : non testé sous Windows, mais je pense qu'il n'y a pas de problème.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à