Bonjour,
Il est possible de définir une zone d'impression de cellules non adjacentes
(par ex. A1:A20;F1:F15) mais à l'impression, on se retrouve avec 2 pages...
Qui connait un moyen pour que tout ceci "rentre" sur une seule page (VBA ou
non)
D'avance merci,
Jero
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas B.
Salut Jero,
Essaie ceci :
Sub ImprimerSelection() Application.ScreenUpdating = False Application.DisplayAlerts = False
Dim sh As Worksheet Dim bol As Boolean Set sh = ActiveSheet
Sheets.Add.Name = "Temp" sh.Select
For Each ar In Selection.Areas If bol Then ar.Copy Sheets("Temp").[A65536].End(xlUp)(3) Else ar.Copy Sheets("Temp").[A1] bol = True End If Next
With Sheets("Temp") .PrintOut .Delete End With
Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
Attention : il faut que la cellule en bas à droite de chaque zone de sélection contienne quelque chose sinon il y aura des collisions (et écrasements même ;-).
A+ Nicolas B.
Jero wrote:
Bonjour, Il est possible de définir une zone d'impression de cellules non adjacentes (par ex. A1:A20;F1:F15) mais à l'impression, on se retrouve avec 2 pages... Qui connait un moyen pour que tout ceci "rentre" sur une seule page (VBA ou non) D'avance merci, Jero
Salut Jero,
Essaie ceci :
Sub ImprimerSelection()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim sh As Worksheet
Dim bol As Boolean
Set sh = ActiveSheet
Sheets.Add.Name = "Temp"
sh.Select
For Each ar In Selection.Areas
If bol Then
ar.Copy Sheets("Temp").[A65536].End(xlUp)(3)
Else
ar.Copy Sheets("Temp").[A1]
bol = True
End If
Next
With Sheets("Temp")
.PrintOut
.Delete
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Attention : il faut que la cellule en bas à droite de chaque zone de
sélection contienne quelque chose sinon il y aura des collisions (et
écrasements même ;-).
A+
Nicolas B.
Jero wrote:
Bonjour,
Il est possible de définir une zone d'impression de cellules non adjacentes
(par ex. A1:A20;F1:F15) mais à l'impression, on se retrouve avec 2 pages...
Qui connait un moyen pour que tout ceci "rentre" sur une seule page (VBA ou
non)
D'avance merci,
Jero
Sub ImprimerSelection() Application.ScreenUpdating = False Application.DisplayAlerts = False
Dim sh As Worksheet Dim bol As Boolean Set sh = ActiveSheet
Sheets.Add.Name = "Temp" sh.Select
For Each ar In Selection.Areas If bol Then ar.Copy Sheets("Temp").[A65536].End(xlUp)(3) Else ar.Copy Sheets("Temp").[A1] bol = True End If Next
With Sheets("Temp") .PrintOut .Delete End With
Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
Attention : il faut que la cellule en bas à droite de chaque zone de sélection contienne quelque chose sinon il y aura des collisions (et écrasements même ;-).
A+ Nicolas B.
Jero wrote:
Bonjour, Il est possible de définir une zone d'impression de cellules non adjacentes (par ex. A1:A20;F1:F15) mais à l'impression, on se retrouve avec 2 pages... Qui connait un moyen pour que tout ceci "rentre" sur une seule page (VBA ou non) D'avance merci, Jero
Daniel.j
Bonjour, Une macro sur la FAQ: Comment imprimer des plages discontinues? Sélectionner les plages avec la touche CTRL dans la boîte de saisie Sub ImpressionZonesDiscontinues() Dim maplage As Range, mazone As Range Dim i As Integer With Application .DisplayAlerts = False Set maplage = .InputBox(prompt:="Selectionnez la plage à imprimer.", _ Type:=8) .ScreenUpdating = False Worksheets.Add End With With ActiveSheet For Each mazone In maplage.Areas mazone.Copy Cells(Range("A1").SpecialCells(xlLastCell).Row + X, 1).Select X = 1 .Paste Next .PrintPreview .Delete End With End Sub http://dj.joss.free.fr/faq.htm#zonediscontinu
-- Daniel FAQ du Forum Microsoft Public Fr Excel http://dj.joss.free.fr/faq.htm "Jero" a écrit dans le message de news: # | Bonjour, | Il est possible de définir une zone d'impression de cellules non adjacentes | (par ex. A1:A20;F1:F15) mais à l'impression, on se retrouve avec 2 pages... | Qui connait un moyen pour que tout ceci "rentre" sur une seule page (VBA ou | non) | D'avance merci, | Jero | |
Bonjour,
Une macro sur la FAQ:
Comment imprimer des plages discontinues?
Sélectionner les plages avec la touche CTRL dans la boîte de saisie
Sub ImpressionZonesDiscontinues()
Dim maplage As Range, mazone As Range
Dim i As Integer
With Application
.DisplayAlerts = False
Set maplage = .InputBox(prompt:="Selectionnez la plage à imprimer.", _
Type:=8)
.ScreenUpdating = False
Worksheets.Add
End With
With ActiveSheet
For Each mazone In maplage.Areas
mazone.Copy
Cells(Range("A1").SpecialCells(xlLastCell).Row + X, 1).Select
X = 1
.Paste
Next
.PrintPreview
.Delete
End With
End Sub
http://dj.joss.free.fr/faq.htm#zonediscontinu
--
Daniel
FAQ du Forum Microsoft Public Fr Excel
http://dj.joss.free.fr/faq.htm
"Jero" <jp.geraudel@llaposte.net> a écrit dans le message de news:
#CqjaRpjEHA.3664@TK2MSFTNGP12.phx.gbl...
| Bonjour,
| Il est possible de définir une zone d'impression de cellules non adjacentes
| (par ex. A1:A20;F1:F15) mais à l'impression, on se retrouve avec 2 pages...
| Qui connait un moyen pour que tout ceci "rentre" sur une seule page (VBA ou
| non)
| D'avance merci,
| Jero
|
|
Bonjour, Une macro sur la FAQ: Comment imprimer des plages discontinues? Sélectionner les plages avec la touche CTRL dans la boîte de saisie Sub ImpressionZonesDiscontinues() Dim maplage As Range, mazone As Range Dim i As Integer With Application .DisplayAlerts = False Set maplage = .InputBox(prompt:="Selectionnez la plage à imprimer.", _ Type:=8) .ScreenUpdating = False Worksheets.Add End With With ActiveSheet For Each mazone In maplage.Areas mazone.Copy Cells(Range("A1").SpecialCells(xlLastCell).Row + X, 1).Select X = 1 .Paste Next .PrintPreview .Delete End With End Sub http://dj.joss.free.fr/faq.htm#zonediscontinu
-- Daniel FAQ du Forum Microsoft Public Fr Excel http://dj.joss.free.fr/faq.htm "Jero" a écrit dans le message de news: # | Bonjour, | Il est possible de définir une zone d'impression de cellules non adjacentes | (par ex. A1:A20;F1:F15) mais à l'impression, on se retrouve avec 2 pages... | Qui connait un moyen pour que tout ceci "rentre" sur une seule page (VBA ou | non) | D'avance merci, | Jero | |