macro calc

Bonjour,

J'ai une macro dans un classeur calc qui imprime un certain nombre de feuilles de ce document.
Si je rajoute une feuille (qui ne sera pas à imprimer) dans ce classeur, la macro ne fonctionne plus...

Quelqu'un a t-il une idée ?

Merci
Abel

(Ubuntu 12.04 et LO 3.5.4.2)

Bonjour

abel wrote

J'ai une macro dans un classeur calc qui imprime un certain nombre de
feuilles de ce document.
Si je rajoute une feuille (qui ne sera pas à imprimer) dans ce classeur,
la macro ne fonctionne plus...

"Ne fonctionne plus" manque de précision pour ce qui me concerne.

1. Cela veut-il dire que la feuille ajoutée est imprimée alors que tu ne le
souhaites pas ?

Si oui, le plus simple (car l'impression des classeurs dans LibreOffice est
conçue comme cela) est de définir des "zones d'impression" pour les feuilles
à imprimer. La FAQ suivante détaille cette notion :
https://wiki.documentfoundation.org/FR/FAQ/Calc/105

2. La macro n'imprime plus rien ?

Si oui, difficile de se prononcer sans disposer de la macro.
Il faudrait que tu joignes ton classeur (expurgé d'éventuelles données
confidentielles) avec la macro.

Nota : les listes ne laissent pas passer de pièces jointes ; il faut
soit passer par la plate-forme Nabble soit par un site de téléchargement
de fichiers et inclure le lien qui te sera donné dans ta réponse.

Cordialement
Pierre-Yves

J'ai manqué de précisions...

la macro imprime toutes les pages d'un classeur jusqu'à la page dont le numéro est indiqué dans une cellule.
Si je rajoute une feuille en fin de classeur, donc pas dans la partie imprimable, alors il ne se passe rien, c'est à dire qu'il n'y a pas d'impression.

Voici la macro :

rem "stagiaires" : c'est le nom de la feuille.
rem "page_fin" : c'est le nom de la cellule contenant le nombre de feuilles à imprimer

Sub ImprimerPages()
Dim monDocument As Object
Dim Props(0) As New com.sun.star.beans.PropertyValue
monDocument = ThisComponent
Props(0).Name = "Pages"
Props(0).Value = "1-"& monDocument.sheets.getByName("stagiaires").getCellRangeByName("page_fin").string
monDocument.Print(Props())
End Sub

Merci d'avance pour les suggestions

Abel

Suite...

Deux choses :

1. Je crains une confusion page / feuille.

Une feuille peut générer plusieurs pages à l'impression selon le volume
de données.

L'option "Pages>Value>1-x" n'imprimera les feuilles 1 à x que si aucune
feuille du classeur n'a "besoin" de plusieurs pages...

2. "Outils> Options> Calc> Impression> Imprimer uniquement
les feuilles sélectionnées" est cochée par défaut, donc, si tu lances la
macro après avoir inséré une feuille, c'est celle-ci qui sera imprimée
par ta macro. Si la feuille est vide rien n'est imprimé...

Cordialement
Pierre-Yves

bonsoir et bonne année à tous
dans 01 net ou zdnet il est indiqué qu'il serait plus prudent de désactiver l'extension java dans le navigateur
est que cela joue pour lejava libre office?
MERCI

-----Message d'origine-----

Bonjour Jean-Marc et bonne année à toi

Tout d'abord un conseil d'utilisation de la liste :
tu as "répondu" à un message concernant une macro au lieu
de créer un nouveau "fil". Ceci n'est pas idéal car ta question
se "perd" au milieu d'un autre sujet et... elle "parasite" en quelque
sorte ce sujet :slight_smile:

Sur le fond, Sophie a donné la réponse à ta question sur la liste
fr-discuss. Je te donne le lien vers son message :
http://nabble.documentfoundation.org/Faille-Java-td4028936.html

Cordialement
Pierre-Yves

Bonjour

Le fonctionnement de nos listes de discussion fait qu'il est nécessaire
d'utiliser la fonction "Répondre à la liste", ou "Répondre à tous", etc.
dans
ton courielleur ou webmail. Sinon, la réponse n'est adressée qu'à la
personne
et non à la liste...

Elle peut donc passer inaperçue voire être supprimée (je filtre ce que je
reçois)
et on se prive d'une éventuelle réponse d'autres membres de la liste.

abel wrote

exact pour la confusion page/feuille

Je reprend :

J'ai un classeur, constitué de plusieurs feuilles dont chaque feuille ne
comporte qu'une seule page.
Cette macro m'imprime bien toutes les feuilles de 1 à X.

Maintenant j'insère une nouvelle feuille (ne comportant qu'une page) après
la feuille X et la macro ne fait plus rien
(aucune impression).

Dans Outils/options/calc/impression : ignorer les pages vides pour
l'impression est cochée et imprimer uniquement les
feuilles sélectionnées est décoché.

Si je supprime cette nouvelle feuille, alors tout va bien.

Je ne comprend pas l'influence de cette feuille sur la macro...

Je suis surpris... Es-tu sûr que l'option soit décochée ?
Le (non-)fonctionnement est-il le même selon que la feuille active soit
la dernière ou l'une de celles devant être imprimée ?

Comme je le disais dans ma première réponse, si la feuille active
est la dernière et si elle ne comprend pas de donnée à imprimer
l'option "imprimer uniquement..." fait que rien n'est imprimé.

Quoiqu'il en soit, une solution simple serait de forcer la sélection
de toutes les feuilles avant de lancer l'impression, ou encore de
changer la feuille active pour la première, ou encore, cf. ma
première réponse, de définir des zones d'impression pour toutes
les feuilles à imprimer...

Cordialement
Pierre-Yves

Bonjour,

Je reviens au sujet de cette macro dans un classeur.
J'ai trouvé une parade...

Je duplique une des feuilles existantes, j'efface son contenu et je remplis avec ce que je veux et la macro fonctionne.
Si j'insère une nouvelle feuille, la macro ne fonctionne pas du tout.

Est-ce un fonctionnement normal ?

Par contre je n'arrive pas à imprimer une zone de cellules dans une feuille en utilisant une macro.

Cordialement

Abel