Bonjour,
voilà, j'essaye de créer une macro qui permet d'imprimer l'un à coté de l'autre deux morceaux de tableau qui ne se touche pas :
exemple de zone : (A3:F8) et (J3:P8) c'est à dire que je ne veux pas imprimer ce qui est dans la zone (G3:O8) mais il faut que les deux morceaux de tableau qui seront imprimés ne forment qu'un seul tableau sur le papier.
Si quelqu'un peut m'aider, je le remercie d'avance...
[Résolu] imprimer sur une même feuille 2 morceaux de tableau
Modérateur : Vilains modOOs
Règles du forum
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 !
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 !
-
- Membre OOrganisé
- Messages : 54
- Inscription : 02 juin 2006 08:20
[Résolu] imprimer sur une même feuille 2 morceaux de tableau
Dernière modification par krusty le 12 juin 2006 12:01, modifié 1 fois.
OpenOffice 2.0 sur windows
OpenOffice 1.1 sur Linux Mandrake 10
OpenOffice 1.1 sur Linux Mandrake 10
-
- NOOuvel adepte
- Messages : 11
- Inscription : 31 mars 2006 07:18
- Localisation : Châlons en Champagne
-
- Membre OOrganisé
- Messages : 54
- Inscription : 02 juin 2006 08:20
Merci, j'aime bien ton idée, elle m'avait effleuré l'esprit mais le fait est que je ne vois pas comment le réaliser facilement dans mon code pour imprimer puisque j'utilise déjà un tableau pour regrouper toutes les zones à imprimer mais sur des pages différentes.
Voici déjà le code de base que j'utilise mais il convient pas exactement au résultat recherché :
Sub Impression_Feuil2
dim Mazone as object
dim Feuille as object
dim MonDoc as object
dim MaZone1 as object
dim MaFeuille as Object
dim AdrZone1(1) as New com.sun.star.table.CellRangeAddress
dim Props() as New com.sun.star.beans.PropertyValue
MonDoc = thisComponent
Feuille = MonDoc.Sheets
MaFeuille = Feuille.getByName("2")
MaZone = MaFeuille.getCellRangeByName("A1:O1")
MaFeuille.TitleColumns = MaZone.RangeAddress
MaFeuille.PrintTitleColumns = True
MaZone1 = MaFeuille.getCellRangeByName("A2:O62")
AdrZone1(0) = MaZone1.RangeAddress
MaZone1 = MaFeuille.getCellRangeByName("A64:O145")
AdrZone1(1) = MaZone1.RangeAddress
MaFeuille.PrintAreas = AdrZone1()
MonDoc.Print(Props())
End Sub
Voici déjà le code de base que j'utilise mais il convient pas exactement au résultat recherché :
Sub Impression_Feuil2
dim Mazone as object
dim Feuille as object
dim MonDoc as object
dim MaZone1 as object
dim MaFeuille as Object
dim AdrZone1(1) as New com.sun.star.table.CellRangeAddress
dim Props() as New com.sun.star.beans.PropertyValue
MonDoc = thisComponent
Feuille = MonDoc.Sheets
MaFeuille = Feuille.getByName("2")
MaZone = MaFeuille.getCellRangeByName("A1:O1")
MaFeuille.TitleColumns = MaZone.RangeAddress
MaFeuille.PrintTitleColumns = True
MaZone1 = MaFeuille.getCellRangeByName("A2:O62")
AdrZone1(0) = MaZone1.RangeAddress
MaZone1 = MaFeuille.getCellRangeByName("A64:O145")
AdrZone1(1) = MaZone1.RangeAddress
MaFeuille.PrintAreas = AdrZone1()
MonDoc.Print(Props())
End Sub
OpenOffice 2.0 sur windows
OpenOffice 1.1 sur Linux Mandrake 10
OpenOffice 1.1 sur Linux Mandrake 10
-
- NOOuvel adepte
- Messages : 11
- Inscription : 31 mars 2006 07:18
- Localisation : Châlons en Champagne
Moi ce que je ferais :
- Je copie les colonnes que je veux imprimer (elles peuvent être dans des feuilles différentes), sur une feuille "temporaire" ou dans une feuille existante.
- Je sélectionne le tableau qui en resulte.
- Je l'imprime.
- Et pour finir, je supprime les colonnes de mon tableau temporaire.
tout ca dans une macro bien sûr.
Je ne voie que cette solution là.
Après, je ne suis pas un pro des macros, y a peut-être une solution plus basique.
- Je copie les colonnes que je veux imprimer (elles peuvent être dans des feuilles différentes), sur une feuille "temporaire" ou dans une feuille existante.
- Je sélectionne le tableau qui en resulte.
- Je l'imprime.
- Et pour finir, je supprime les colonnes de mon tableau temporaire.
tout ca dans une macro bien sûr.
Je ne voie que cette solution là.
Après, je ne suis pas un pro des macros, y a peut-être une solution plus basique.
Windows XP SP2 - OOo 2.0.2
Mac OS X.4.6 OOo 2.0.1
Mac OS X.4.6 OOo 2.0.1
-
- Grand Maître de l'OOffice
- Messages : 11276
- Inscription : 02 mai 2006 08:42
Imprimer des plages non contigües
Bonjour
Une autre solution simple, avec une macro "enregistrable". Principe : sélectionner la plage "intermédiaire" qu'on ne veut pas imprimer, puis lancer la commande Format Colonne Masquer.
Aller plus loin :
Il est possible d'affecter cette macro à l'événement "impression" du document par la commande Outils Personnaliser Evénements.
Une autre solution simple, avec une macro "enregistrable". Principe : sélectionner la plage "intermédiaire" qu'on ne veut pas imprimer, puis lancer la commande Format Colonne Masquer.
Code : Tout sélectionner
sub PysMasquer
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 ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "G1:I65536"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:HideColumn", "", 0, Array())
end sub
Il est possible d'affecter cette macro à l'événement "impression" du document par la commande Outils Personnaliser Evénements.
-
- Membre OOrganisé
- Messages : 54
- Inscription : 02 juin 2006 08:20
Oui je pense que c'est une bonne solution, mais j'avais penser essayer de le faire en utilisant les zones d'impression, car en fait je dois passer des fichiers de Excel vers Calc le seul problème étant les macros, je ne veux pas non plus avoir à modifier le fichier en lui même c'est à dire que je ne veux pas rajouter de feuil ou de tableau afin d'éviter des mauvaises manipulations des utilistaeurs finaux.
Le fait est que si je ne peux faire autrement alors j'utiliserais cette solution.
Merci
Le fait est que si je ne peux faire autrement alors j'utiliserais cette solution.
Merci
OpenOffice 2.0 sur windows
OpenOffice 1.1 sur Linux Mandrake 10
OpenOffice 1.1 sur Linux Mandrake 10
-
- Membre OOrganisé
- Messages : 54
- Inscription : 02 juin 2006 08:20
-
- NOOuvel adepte
- Messages : 11
- Inscription : 31 mars 2006 07:18
- Localisation : Châlons en Champagne