Bonsoir,

François Vermel a écrit :
Bonjour,

Je ne connais pas la programmation OOo, alors j'ai utilisé l'enregistreur de macro pour effacer d'un coup une colonne. Mais j'ai 30 colonnes qu'il faut pouvoir effacer individuellement, j'ai donc recopié la macro 30 fois en changeant la lettre dans la référence des cellules. Cela marche aussi mais je me demande si on peut pas simplifier et n'avoir qu'une macro à qui le bouton correspondant va envoyer la lettre de la colonne à effacer...

Je ne sais pas si je m'explique bien ?
Pour ceux que cela intéresse je met ci- dessous la macro en question et à quoi sert la feuille calc.

Merci de votre aide....

François
------------------------------------------------------------------------
Le but du document calc est de faire les commandes pour un groupement d'achat associatif.
Sur chaque ligne un produit et deux colonnes par adhérents :
- une où l'on indique la quantité commandée,
- la seconde calcule le prix
La question est de pouvoir effacer d'un clic la colonne quantité (ligne 6 à 149)


La macro générée par OOo est la suivante :

sub EffaceColonneO
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$O$6:$O$149"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$O$6"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())


end sub


voici une idée :

sub Main
 dim oDoc as object
 dim oSheet as object
 dim oCurCell as object
 dim iCol as integer
 'Le document
 oDoc = thisComponent
 'la cellule active
 oCurCell = oDoc.CurrentController.Selection.CellAddress
 'on recupere l'indice de colonne et de la feuille
 with oCurCell
  iCol = .Column
  iSheet = .Sheet
 end with
 'on indique quelle feuille est a traiter
 oSheet = oDoc.getSheets().getByIndex( iSheet )
 'et on supprime la colonne active dans la feuille
 oColumns = oSheet.getColumns()
end sub

Francois Gatto


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

Reply via email to