Code VBA pour imprimer en R/V suivant le nombre de lignes

MO -  
 MO -
Bonjour,


Je recherche créer un classeur sous Excel, ou des lignes pourront être ajoutées.
Pour cela je souhaite créer une macro :
- qui imprime sur une seule page si le classeur contient un certain nombre de lignes
- qui imprime en recto/verso si le classeur contient plus de lignes que le nombre définit.

Merci

A voir également:

8 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Qu'est-ce qui pose problème ? Et qu'est-ce que tu veux au juste ?

«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
0
MO
 
Merci de votre réponse.

Mon problème c'est que je ne sais pas faire une fonction conditionnel suivant le nombre de lignes qui me permettrais de régler automatiquement le caractère recto/verso ou non de mon document.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
0
MO
 
merci
mais malheureusement j'ai déjà regardé, et je n'ai pas réussi avec ces informations.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Même avec ça :

Q. Comment afficher les propriétés des imprimantes installées ?

Sub proprietesImprimantes()
Dim objWMIService As Object, colItems As Object
Dim objItem As Object
Dim strComputer As String
Dim i As Byte
 
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = _
    objWMIService.ExecQuery("Select * from Win32_PrinterConfiguration", , 48)
 
For Each objItem In colItems
    i = i + 1
    Cells(1, i) = "BitsPerPel: " & objItem.BitsPerPel
    Cells(2, i) = "Caption: " & objItem.Caption
    Cells(3, i) = "Collate: " & objItem.Collate
    Cells(4, i) = "Color: " & objItem.Color
    Cells(5, i) = "Copies: " & objItem.Copies
    Cells(6, i) = "Description: " & objItem.Description
    Cells(7, i) = "DeviceName: " & objItem.DeviceName
    Cells(8, i) = "DisplayFlags: " & objItem.DisplayFlags
    Cells(9, i) = "DisplayFrequency: " & objItem.DisplayFrequency
    Cells(10, i) = "DitherType: " & objItem.DitherType
    Cells(11, i) = "DriverVersion: " & objItem.DriverVersion
    Cells(12, i) = "Duplex: " & objItem.Duplex
    Cells(13, i) = "FormName: " & objItem.FormName
    Cells(14, i) = "HorizontalResolution: " & objItem.HorizontalResolution
    Cells(15, i) = "ICMIntent: " & objItem.ICMIntent
    Cells(16, i) = "ICMMethod: " & objItem.ICMMethod
    Cells(17, i) = "LogPixels: " & objItem.LogPixels
    Cells(18, i) = "MediaType: " & objItem.MediaType
    Cells(19, i) = "Name: " & objItem.Name
    Cells(20, i) = "Orientation: " & objItem.Orientation
    Cells(21, i) = "PaperLength: " & objItem.PaperLength
    Cells(22, i) = "PaperSize: " & objItem.PaperSize
    Cells(23, i) = "PaperWidth: " & objItem.PaperWidth
    Cells(24, i) = "PelsHeight: " & objItem.PelsHeight
    Cells(25, i) = "PelsWidth: " & objItem.PelsWidth
    Cells(26, i) = "PrintQuality: " & objItem.PrintQuality
    Cells(27, i) = "Scale: " & objItem.Scale
    Cells(28, i) = "SettingID: " & objItem.SettingID
    Cells(29, i) = "SpecificationVersion: " & objItem.SpecificationVersion
    Cells(30, i) = "TTOption: " & objItem.TTOption
    Cells(31, i) = "VerticalResolution: " & objItem.VerticalResolution
    Cells(32, i) = "XResolution: " & objItem.XResolution
    Cells(33, i) = "YResolution: " & objItem.YResolution
 
    Columns(i).AutoFit
Next
End Sub


Chaque imprimante possède son propre setup. Tu peux peut être essayer de récupérer les propriétés de l'imprimante que tu veux utiliser.
0
MO
 
Effectivement j'ai appris que la mise en recto/verso se fait par la fonction
pr.Duplex = vbPRDPVertical ou horizontal
mais je ne sais pas comment intégrer ma fonction "si" suivant le nombre de lignes de la zone d'impression que j'ai defini
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Je ne comprends pas pourquoi où est le soucis ... Excel gère tout seul les pages ... Si tu n'as qu'une page, il n'imprimera qu'une page et si tu as plusieurs pages, si la propriété recto/verso est activée, l'impression se fera toute seule.
0
MO
 
Parce que je ne veux pas avoir une ligne toute seule derrière
0