Enregistrer macros, résultat ?
Résolu
Nai
Messages postés
714
Date d'inscription
Statut
Membre
Dernière intervention
-
Nai Messages postés 714 Date d'inscription Statut Membre Dernière intervention -
Nai Messages postés 714 Date d'inscription Statut Membre Dernière intervention -
Bonjour la communauté !
Je suis en train de convertir un tableau Excel sous OpenOffice. Ayant bien compris que le langage des macros n'est pas le même chez l'un et l'autre, je ne cherche pas à convertir du VBA en Basic, mais bien à créer les macros.
Ainsi, OpenOffice propose d'enregistrer une macro. Elle enregistre tout ce que je fais. Lorsque je l'exécute, elle est censé refaire exactement ce que j'ai fais lors de l'enregistrement. Malheureusement, ce n'est pas le cas.
Peut-être y a-t-il quelque chose que je n'est pas compris, mais dans le code, il n'y a aucune référence aux lignes copiées ou insérer. Rien du tout en ce qui concerne les lignes...
Je voulais Copier la ligne 10, insérer une ligne vide entre la 10 et là 11 et l'insérer à la place de la nouvelle ligne 11. Cette dernière est devenue la ligne 12. Mais, ça n'a pas marché... :/
L'enregistrement d'une macro nécessite-t-il de faire une autre manipulation ?
Voici le fichier : https://www.cjoint.com/c/DGrqWV7lPIy
Merci d'avance de votre aide !
Je suis en train de convertir un tableau Excel sous OpenOffice. Ayant bien compris que le langage des macros n'est pas le même chez l'un et l'autre, je ne cherche pas à convertir du VBA en Basic, mais bien à créer les macros.
Ainsi, OpenOffice propose d'enregistrer une macro. Elle enregistre tout ce que je fais. Lorsque je l'exécute, elle est censé refaire exactement ce que j'ai fais lors de l'enregistrement. Malheureusement, ce n'est pas le cas.
Peut-être y a-t-il quelque chose que je n'est pas compris, mais dans le code, il n'y a aucune référence aux lignes copiées ou insérer. Rien du tout en ce qui concerne les lignes...
sub ajouter_ligne 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 ---------------------------------------------------------------------- dispatcher.executeDispatch(document, ".uno:InsertRows", "", 0, Array()) rem ---------------------------------------------------------------------- dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array()) rem ---------------------------------------------------------------------- dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array()) end sub
Je voulais Copier la ligne 10, insérer une ligne vide entre la 10 et là 11 et l'insérer à la place de la nouvelle ligne 11. Cette dernière est devenue la ligne 12. Mais, ça n'a pas marché... :/
L'enregistrement d'une macro nécessite-t-il de faire une autre manipulation ?
Voici le fichier : https://www.cjoint.com/c/DGrqWV7lPIy
Merci d'avance de votre aide !
A voir également:
- Enregistrer macros, résultat ?
- Audacity enregistrer son pc - Guide
- Resultat foot - Télécharger - Vie quotidienne
- Comment enregistrer une conversation - Guide
- Lexer resultat - Télécharger - Sport
- Enregistrer son ecran - Guide
3 réponses
bonsoir
Lors de l'enregistrement de la macro commencer par insérer la ligne et ensuite sélectionner les cellules à copier et copier (CTRL+C) et coller CTRL+V)
L'enregistreur fonctionne le mieux en utilisant au maximum le clavier
cela donne
sub ajoute_ligne
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertRows", "", 0, Array())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$A$10:$Z$10"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$A$11"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "ToPoint"
args6(0).Value = "$A$11"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6())
end sub
Lors de l'enregistrement de la macro commencer par insérer la ligne et ensuite sélectionner les cellules à copier et copier (CTRL+C) et coller CTRL+V)
L'enregistreur fonctionne le mieux en utilisant au maximum le clavier
cela donne
sub ajoute_ligne
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertRows", "", 0, Array())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$A$10:$Z$10"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$A$11"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "ToPoint"
args6(0).Value = "$A$11"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6())
end sub
Merci !
Désolé pour le délais !
J'ai complété ton code avec la sélection de la cellule A11 avant le reste de ton code.
Je ne sais pas pourquoi, mais le résultat de la macro dépend de la cellule sélectionné au moment du clic sur la macro...
Du coup, problème résolu en sélectionnant celle qu'il faut :D
Merci !
Désolé pour le délais !
J'ai complété ton code avec la sélection de la cellule A11 avant le reste de ton code.
Je ne sais pas pourquoi, mais le résultat de la macro dépend de la cellule sélectionné au moment du clic sur la macro...
Du coup, problème résolu en sélectionnant celle qu'il faut :D
Merci !