[Résolu][Calc] Impression nb page en fonction d'une cellule

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur: Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !

[Résolu][Calc] Impression nb page en fonction d'une cellule

Messagepar gunsman » 20 Juin 2019 15:36

Bonjour à tous,

Actuellement j'utilise un moreceau de code afin d'imprimer une zone de Calc.

Code : Tout sélectionner   AgrandirRéduire
Sub ImprimerZones1()
Dim monDocument As Object, lesFeuilles As Object
Dim FeuilleCourante as Object, maFeuille As Object, maZone As Object
Dim Props(0) As New com.sun.star.beans.PropertyValue
Dim adrZones(0) As New com.sun.star.table.CellRangeAddress
   Props(0).Name = "Wait"
   Props(0).Value = True
   monDocument = thisComponent
   FeuilleCourante = monDocument.currentController.ActiveSheet
   lesFeuilles = monDocument.Sheets
   maFeuille = lesFeuilles.getByName("Etiquette")
   maZone = maFeuille.getCellRangeByName("A1:H51")
   monDocument.CurrentController.ActiveSheet = maFeuille
   adrZones(0) = maZone.RangeAddress
   maFeuille.PrintAreas = adrZones()
   monDocument.Print(Props())
   monDocument.CurrentController.ActiveSheet = FeuilleCourante
End Sub




Cela fonctionne parfaitement, mais lorsque je veux plusieurs exemplaires, je dois relancer ce morceau de code plusieurs fois (via un bouton qui correspond au nombre de fois).


J'aimerais en fonction du nombre situé dans une cellule (par exemple 5 dans la cellule A50) que libreoffice imprime 5 pages. Est-ce possible ?

Merci pour votre aide.
Dernière édition par gunsman le 21 Juin 2019 10:19, édité 2 fois.
Libre office 6.2.4.2 windows 10
gunsman
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 28 Sep 2016 19:20

Re: [Calc] Impression nombre page en fonction d'une cellule

Messagepar Noonours » 20 Juin 2019 23:16

Bonjour

Modifie dans ton code:
Code : Tout sélectionner   AgrandirRéduire
Dim Props(0) As New com.sun.star.beans.PropertyValue
en:
Code : Tout sélectionner   AgrandirRéduire
Dim Props(1) As New com.sun.star.beans.PropertyValue


Puis ajoute les lignes suivantes:
Code : Tout sélectionner   AgrandirRéduire
   Props(0).Name = "Wait"
   Props(0).Value = True
   Props(1).Name = "CopyCount"
   Props(1).Value = maFeuille.getCellRangeByName("A50").value


COOordialement,
Noonours

N’HÉSITEZ SURTOUT PAS À JOINDRE UN FICHIER

LibO 6.2.4.2 sous Windows 10
LibO 5.0.6.3 (obligation de version) sous Win 7
Avatar de l’utilisateur
Noonours
Membre cOOnfirmé
Membre cOOnfirmé
 
Message(s) : 298
Inscrit le : 11 Mai 2013 01:11
Localisation : Aix en Provence

Re: [Calc] Impression nombre page en fonction d'une cellule

Messagepar gunsman » 21 Juin 2019 05:35

Génial !!

Merci je fais un essai ce matin !!!!



:super: :bravo:
Libre office 6.2.4.2 windows 10
gunsman
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 28 Sep 2016 19:20

Re: [Calc] Impression nombre page en fonction d'une cellule

Messagepar gunsman » 21 Juin 2019 08:21

ça marche !!!


Merci je passe en mode résolu.


:super:


Voilà le code complet pour ceux qui voudrait s'en inspirer :

Code : Tout sélectionner   AgrandirRéduire

Sub ImprimerZones()
Dim monDocument As Object, lesFeuilles As Object
Dim FeuilleCourante as Object, maFeuille As Object, maZone As Object
Dim Props(1) As New com.sun.star.beans.PropertyValue
Dim adrZones(0) As New com.sun.star.table.CellRangeAddress
   monDocument = thisComponent
   FeuilleCourante = monDocument.currentController.ActiveSheet
   lesFeuilles = monDocument.Sheets
   maFeuille = lesFeuilles.getByName("Nom_de_l_onglet")
   maZone = maFeuille.getCellRangeByName("A1:U62")
   monDocument.CurrentController.ActiveSheet = maFeuille
      Props(0).Name = "Wait"
   Props(0).Value = True
   Props(1).Name = "CopyCount"
   Props(1).Value = maFeuille.getCellRangeByName("A50").value
   adrZones(0) = maZone.RangeAddress
   maFeuille.PrintAreas = adrZones()
   monDocument.Print(Props())
   monDocument.CurrentController.ActiveSheet = FeuilleCourante
End Sub
Libre office 6.2.4.2 windows 10
gunsman
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 28 Sep 2016 19:20


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Google [Bot] et 5 invité(s)