Complément macro

Bonjour à tous

J’ai récupéré sur le site un exemple de macro fourni par “pierre-yves samyn” pour exporter une feuille dans un nouveau classeur (publication “Macro export feuille” de juju81 du 20/02).
Est-il possible de supprimer la feuille1 dans le fichier destinataire et si oui, quel code faudrait-il rajouter à la macro ?
J’ai essayé de trouver une solution par moi-même mais en vain…
Merci d’avance

Merci beaucoup pour la rapidité de la réponse.
En revanche, je constate que la mise en page de l’onglet n’est pas conservé dans le fichier de destination.
Y-a-t’il un moyen de figer sa mise en page ?
Merci d’avance !

@noah79 je suppose que tu veux récupérer les attributs du style de page (en-tête, pied, orientation, etc.). Si c’est bien cela la solution la plus simple consiste à créer un style de page, appliqué sur la feuille qu’on copie. Il sera alors possible de récupérer ce style dans le nouveau classeur et l’appliquer.

Confirme d’abord que c’est ce que tu veux avant que je programme…

Cordialement

Bonjour

Il faut insérer removeByName entre Move et StoreAsURL , soit :

dispatcher.executeDispatch(document, ".uno:Move", "", 0, args1())	
oClassDest.sheets.removeByName("Feuille1")	
oClassDest.storeAsURL(sUrl, Array())

[Ajout 02-04-20 07:35]

Sur la forme, pour d’éventuelles futures question, merci de ne pas utiliser la fonction Ajouter une réponse quand tu apportes des précisions : ce site ne fonctionne pas comme un chat ou un forum. Il faut utiliser pour cela des commentaires (comme je le fais moi-même) ou éditer sa question (comme je le fais également).

Sur le fond tu confirmes ce que j’avais supposé : tu veux récupérer les attributs du style de page. Cela est mis en oeuvre dans le classeur joint : j’ai créé et appliqué à la feuille C le style de page TestExport qui est récupéré dans le classeur généré. Voir ExportFeuille.ods

Cordialement

Merci pierre-yves samyn pour ton aide.
L’exemple donné fonctionne parfaitement sur mon pc doté de la dernière version de libreoffice.
En revanche, sur un autre ordi doté d’une version antérieure (pc pro), la macro ne fonctionne pas.
J’ai une anomalie sur la fonction “loadStylesFromDocument” (erreur d’exécution BASIC \ propriété ou méthode non trouvée).
Y-a-t’il une solution pour contourner cette anomalie sachant que la version actuellement installée sur le pc pro ne peut pas être modifiée ?
Merci d’avance pour ton aide !

@noah79 quelle est la version de ce pc ?

c’est la version 4.3.7.2

@noah79 vous faites fort… garder une version si ancienne sur un pc Pro ? Cette version est en fin de vie depuis mai 2015.

Les nouvelles versions ne font pas que corriger des bugs & apporter de nouvelles fonctionnalités, elles corrigent des failles de sécurité. Mon conseil serait de parcourir la liste des avis de sécurité et de voir ce qui a été fait depuis la 4.3.7.

Sinon, tu n’as pas de chance la propriété existe depuis la 4.4. Si vraiment tu ne peux changer ta version (ce que je ne peux envisager) la solution serait de procéder autrement : au lieu d’exporter la feuille vers un nouveau classeur, enregistrer le classeur de départ sous le nom du classeur destination puis supprimer tout ce que tu ne veux pas garder.

Cordialement

Pour être précis, l’onglet à copier du classeur A vers le classeur B dispose de sa propre mise en page :

  • les données sont calibrées sur 1 page en largeur et 4 pages en hauteur
  • les sauts de pages sont définis à des endroits précis
  • les numéros de pages sont paramétrés
  • pas d’en-tête
  • le texte est centré horizontalement sur la page - …
    Or quand je copie avec la macro, ces éléments ne sont pas repris.