Bonsoir,

Avec ta macro un peu ré-aménagée
ça devrait rouler ...

Sub ImprimerFeuilles()

 REM Déclarations
 '---------------------------------
 Dim lesFeuilles As Object
 Dim maFeuille   As Object
 Dim nbF         As Long
 Dim adrZones( 1 ) As New com.sun.star.table.CellRangeAddress
 '---------------------------------

 lesFeuilles = ThisComponent.Sheets
 nbF         = lesFeuilles.Count

 Print "nb feuilles " & nbF

 For x = 0 To nbF - 1
  'print "Feuille "& lesFeuilles( x ).Name
adrZones( 0 ) = lesFeuilles( x ).getCellRangeByName( "A2:B3" ).RangeAddress adrZones( 1 ) = lesFeuilles( x ).getCellRangeByName( "B7:D9" ).RangeAddress
  lesFeuilles(x).PrintAreas = adrZones()
 Next

End Sub

Francois

Sarah Haïm-Lubczanski a écrit :
Bonjour,

Est-il possible par macro d'imprimer plusieurs feuilles (ou le classeur entier) ?

J'ai tenté de définir pour chaque feuille une zone d'impression, mais lorsque je lance l'aperçu (par le logiciel manuellement), je ne vois qu'une feuille.

Mon code

Sub ImprimerFeuilles()
REM Déclarations
'---------------------------------
Dim lesFeuilles as object,  monDoc as object
dim maFeuille as object, macellule as variant
dim maZone as object
dim lesZones as Object, adrZones
dim nbF as Long
'---------------------------------
monDoc = monDocument(TRUE)

lesFeuilles = monDoc.Sheets
nbF = lesFeuilles.Count



print "nb feuilles " & nbF
for x = 0 to nbF - 1
maFeuille = lesFeuilles(x)
'print "Feuille "& maFeuille.Name
maZone = maFeuille.getCellRangeByName("B4:E6")
    adrZones(0) = maZone.RangeAddress
maZone = maFeuille.getCellRangeByName("G6:K8")
    adrZones(1) = maZone.RangeAddress
maFeuille.PrintAreas = adrZones()
next
End Sub

Sarah Haïm-Lubczanski


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à