Page 1 sur 1

[Résolu] [Calc] copier-insérer une ligne

Publié : 11 juin 2019 11:22
par anatole
Bonjour,
Après de longues longues hésitations (une quinzaine d'années), je viens de décider de migrer progressivement d'Excel à Calc...
Dans Excel - pour l'essentiel avec l'enregistreur de macros - je me suis fait de nombreuses petites macros que je trouve bien commodes :)
Je viens d'essayer de commencer à les récréer dans Calc avec l'enregistreur et ça commence mal ! pour la première "sélectionner toute une ligne / la copier/insérer une nouvelle ligne/la coller" :fou:
La macro enregistrée en final insère une ligne...vide Voilà son contenu :"

Code : Tout sélectionner

sub copierInsererLigne
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:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertRowsBefore", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
end sub
Je suis preneur de tuto Macro pour débutants
Merci de vos lumières
La modération vous a écrit: Pour faciliter la lecture, code mis entre balises par le modérateur.


Re: [Calc] copier-insérer une ligne

Publié : 11 juin 2019 11:45
par micmac
Bonjour,

Votre titre < Calc Macro "copier-insérer une ligne" >
Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.

Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche.
Avez-vous remarqué comment étaient postées les autres questions ?

Lisez ce fil pour savoir quelle balise utiliser : https://forum.openoffice.org/fr/forum/s ... html#27295

N'oubliez pas que les termes Macro, OpenOffice ne doivent pas être employés car il sont implicites. Essayez de synthétiser au mieux ce que vous cherchez à faire.

Un titre accrocheur vous permettra d'une part d'être aidé plus rapidement et d'autre part, d'enrichir notre base de connaissances.

Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même au risque de voir votre sujet verrouillé.

Merci de votre collaboration.

Re: [Calc] copier-insérer une ligne

Publié : 12 juin 2019 17:52
par touvenant
Bonsoir,
je ne connais pas bien l'enregistreur de macro, mais il me semble qu'il manque l'étape "sélection"...
Après la création du service dispatcher, il y a une ligne pour la copie (mais de quoi ?) puis la création de la ligne, puis le collage (mais de quoi ?)... Il y a un double guillemet dans les paramètres "" qui signifie probablement une chaîne vide...
Est-ce que tu as sélectionné ta ligne (origine puis maj+fin) après le déclenchement de l'enregistrement de la macro ?

Re: [Calc] copier-insérer une ligne

Publié : 13 juin 2019 18:01
par anatole
Bonsoir Touvenant et merci de t'intéresser à mon post

Effectivement l'enregistreur semble n'enregistrer aucune sélection de ligne ? Le curseur, étant placé dans une ligne, après avoir ouvert l'enregistreur, je sélectionne la ligne en faisant Majuscule + pointeur sur le n° de la ligne : ce qui la sélectionne ??

Il va falloir que j'investisse un peu de temps pour plonger dans les macros Libre Office, car dans Microsoft Office que je viens de décider de quitter après 20 ans... d'interrogation, je trouvais cet outil des macros - via l'enregistreur - bien commode !!

Bon week-end

Re: [Calc] copier-insérer une ligne

Publié : 13 juin 2019 19:38
par Dude
Salut,
anatole a écrit : je sélectionne la ligne en faisant Majuscule + pointeur sur le n° de la ligne : ce qui la sélectionne ??
Relis l'aide F1 : ce qui est fait avec la souris n'est pas enregistré.

Il faut tout faire uniquement avec le clavier.
La sélection d'une ligne peut se faire via le raccourci Maj + Espace.
Le dispatcher affichera ensuite logiquement :

Code : Tout sélectionner

dispatcher.executeDispatch(document, ".uno:SelectRow", "", 0, Array())

Re: [Calc] copier-insérer une ligne

Publié : 17 juin 2019 15:29
par anatole
Merci Dude,
Effectivement :) maintenant ça marche !!
Je vais avoir du boulot pour plonger dans les macros Libre Office
Je vais voir les infos disponibles pour les débutants papy-geek comme moi :oops:

Bonne semaine

Re: [Résolu] [Calc] copier-insérer une ligne

Publié : 18 juin 2019 09:40
par anatole
re-bonjour,
Dude, juste une petite question :
Relis l'aide F1 : ce qui est fait avec la souris n'est pas enregistré.
Je n'ai pas réussi à trouver cette "aide F1" :roll:

Bonne journée

Re: [Résolu] [Calc] copier-insérer une ligne

Publié : 18 juin 2019 10:04
par tintin
Bonjour,

L'action sur la touche F1 de votre clavier ouvre l'aide LibreOffice à laquelle vous avez également accès en cliquant sur le menu Aide.
LibO_enregistrement_macros.png
Limitations de l'enregistreur de macro

Les actions suivantes ne sont pas enregistrées :
  • L'ouverture d'une fenêtre n'est pas enregistrée.
  • Les actions réalisées dans une fenêtre autre que celle dans laquelle l'enregistreur a été démarré ne sont pas enregistrées.
  • Le changement de fenêtre n'est pas enregistré.
  • Les actions indépendantes du contenu du document ne sont pas enregistrées. Par exemple, les modifications réalisées dans une boîte de dialogue d'options, l'organisateur de macros ou la personnalisation.
  • Les sélections sont enregistrées uniquement si elles sont réalisées en utilisant le clavier (déplacement du curseur) mais pas quand la souris est utilisée.
  • L'enregistreur de macro fonctionne uniquement dans Calc et Writer.

Re: [Résolu] [Calc] copier-insérer une ligne

Publié : 18 juin 2019 16:03
par anatole
Bonsoir et Merci Tintin,
L'aide n'était pas installée : je viens de le faire ! c'est top :D

J'en profite pour vous demander si vous connaissez des outils (tutos, sites internet...) bien conçus pour les débutants qui veulent fabriquer leurs premières macros, car elles sont bien utiles, je trouve :)

Bonne soirée

Re: [Résolu] [Calc] copier-insérer une ligne

Publié : 24 juin 2019 13:12
par Bidouille
Bonjour,
anatole a écrit :J'en profite pour vous demander si vous connaissez des outils (tutos, sites internet...) bien conçus pour les débutants
Vous devriez pendre la peine de lire ce qui est épinglé en tête de section :
capture.png
Et si des ressources manquent, vous pouvez enrichir la documentation.