Merci François,

Je ne comprend pas tout encore, mais je vois le sens général...
Est-ce que l'on peut passer le n° de colonne en argument depuis le programme ?
Car en haut de chaque colonne il y a de toute façon un bouton.
Peut-on faire qu'un bouton appelle par exemple /ViderColonne(n)/
En attribuant une macro au bouton on ne peut éditer la ligne pour passer l'argument,
mais seulement sélectionner la macro...

Bonne soirée

François

Francois Gatto a écrit :
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]



Répondre à