Macro excel > openoffice

kabeha

Membre expert
Club iGen
13 Mai 2002
1 323
54
60
Bourg en Bresse
Bonjour,

Une question toute bête, j'ai une macro excel toute simple dont je voudrais me servir avec open office, mais je ne sais pas comment la "traduire".

"Sub MacroRAZ1()
'
' Macro Remise à zéro de la note 1
'
Range("B2:B11").ClearContents
Range("C2:C11") = 1
Range("E2:E11") = ""

Range("B2").Select
End Sub"

Est-ce que qq pourrait m'aider ?

D'avance merci
 
Bonjour,

Une question toute bête, j'ai une macro excel toute simple dont je voudrais me servir avec open office, mais je ne sais pas comment la "traduire".

"Sub MacroRAZ1()
'
' Macro Remise à zéro de la note 1
'
Range("B2:B11").ClearContents
Range("C2:C11") = 1
Range("E2:E11") = ""

Range("B2").Select
End Sub"

Est-ce que qq pourrait m'aider ?

D'avance merci

Ben une macro comme ça, tu peux l'enregistrer directement à la mimine, hein !

Mais sinon, je l'ai fait (par curiosité), voici le code que ça renvoie :

Bloc de code:
sub Main
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 = "$B$2:$B$11"

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

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Flags"
args2(0).Value = "A"

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

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$C$2"

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

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "StringName"
args4(0).Value = "1"

dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args4())

rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "ToPoint"
args5(0).Value = "$C$2"

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

rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "EndCell"
args6(0).Value = "$C$11"

dispatcher.executeDispatch(document, ".uno:AutoFill", "", 0, args6())

rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "ToPoint"
args7(0).Value = "$C$2:$C$11"

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

rem ----------------------------------------------------------------------
dim args8(0) as new com.sun.star.beans.PropertyValue
args8(0).Name = "ToPoint"
args8(0).Value = "$E$2:$E$11"

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

rem ----------------------------------------------------------------------
dim args9(0) as new com.sun.star.beans.PropertyValue
args9(0).Name = "Flags"
args9(0).Value = "A"

dispatcher.executeDispatch(document, ".uno:Delete", "", 0, args9())

rem ----------------------------------------------------------------------
dim args10(0) as new com.sun.star.beans.PropertyValue
args10(0).Name = "ToPoint"
args10(0).Value = "$B$2"

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


end sub

Légèrement moins compact que le VBA, je trouve ! :rateau: Bon, c'est vrai, il doit être possible de légèrement optimiser tout ça :siffle:

:D
 
Je te remercie de m'avoir consacré ce temps, si j'avais su que ça générait un truc aussi compliqué. Une page de code pour trois lignes de macro :mouais:

De plus cela ne reproduit pas l'effet de la macro excel, à savoir :

Range("B2:B11").ClearContents > remise à zéro des cellules B2 à B11 sans effacer mise en forme vs macro oOO qui efface mise en forme
Range("C2:C11") = 1 > donne valeur 1 de C2 à C11 vs oOO qui donne 1, 2, 3, 4, etc.
Range("E2:E11") = "" > donne aucune valeur et garde mise en forme + liste déroulante existante vs oOO qui efface tout

Range("B2").Select > OK

:zen::zen::zen:
 
De plus cela ne reproduit pas l'effet de la macro excel, à savoir :

Range("B2:B11").ClearContents > remise à zéro des cellules B2 à B11 sans effacer mise en forme vs macro oOO qui efface mise en forme
Range("C2:C11") = 1 > donne valeur 1 de C2 à C11 vs oOO qui donne 1, 2, 3, 4, etc.
Range("E2:E11") = "" > donne aucune valeur et garde mise en forme + liste déroulante existante vs oOO qui efface tout

Range("B2").Select > OK

:zen::zen::zen:

C'est parce que j'ai pas du faire supprimer juste le contenu, il te suffit d'enregistrer toi même cette macro en faisant une fois "à la main" exactement ce que tu veux qu'elle fasse.

Cela dit, je ne suis pas certain qu'il n'existe pas, à ce niveau, des choses qu'Excel fait et pas "OOo" (je n'utilise ce dernier que pour étudier les questions posées ici) !