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]