raccourcir plusieurs macro en une seule

altinea

XLDnaute Accro
Bonsoir, le forum,
j'ai 4 macro qui font la même chose, mais je ne sais pas comment faire pour n'en faire qu'une seule, pouvez vous m'aider

Sub 1()
If Sheets("MP").Range("D11").Value = 0 Then
Exit Sub
End If
Sheets("A").PrintOut Copies:=Sheets("MP").Range("D11")
End Sub

Sub 2()
If Sheets("MP").Range("E11").Value = 0 Then
Exit Sub
End If
Sheets("B").PrintOut Copies:=Sheets("MP").Range("E11")
End Sub

Sub 3()
If Sheets("MP").Range("G11").Value = 0 Then
Exit Sub
End If
Sheets("C").PrintOut Copies:=Sheets("MP").Range("G11")
End Sub

Sub 4()
If Sheets("MP").Range("F11").Value = 0 Then
Exit Sub
End If
Sheets("D").PrintOut Copies:=Sheets("MP").Range("F11")
End Sub



Merci pour votre aide
 

JCGL

XLDnaute Barbatruc
Re : raccourcir plusieurs macro en une seule

Bonjour à tous,

Peut-être un truc du genre :
VB:
Option Explicit

Sub Test()
Dim Col&
For Col = 4 To 8
If Sheets("MP").Cells(11, Col) = 0 Then Exit Sub
Sheets(Chr(65 - Col)).PrintOut Copies:=Sheets("MP").Cells(11, Col)
Next Col
End Sub

Mais sans le fichier et les noms de feuilles véridiques, j'ai beaucoup de doute

A+ à tous
 

Cousinhub

XLDnaute Barbatruc
Re : raccourcir plusieurs macro en une seule

Hi,

Salut JC ;), Meilleurs vœux...

Attention, Dans son énoncé, F et G sont inversés (feuilles C et D)...

Sinon, une autre solution, en partant du principe que les colonnes se suivent bien....

Code:
Sub imprim()
Dim LesOnglets, Sh
Dim Col As Byte
Col = 4
LesOnglets = Array("A", "B", "C", "D")
For Each Sh In LesOnglets
    With Sheets(Sh)
        If Sheets("MP").Cells(11, Col) > 0 Then
            .PrintPreview
'            .PrintOut Copies:=Sheets("MP").Cells(11, Col)
        End If
    End With
    Col = Col + 1
Next Sh
End Sub

Reste à remplacer les noms des onglets "A", "B".... par leur nom exact....

PS, le preview est juste pour m'économiser du papier.....:cool:

Bonne soirée à tous
 

altinea

XLDnaute Accro
Re : raccourcir plusieurs macro en une seule

RE, JGCL, BHBH,
concernant ta proposition ça fonctionne, par contre j'ai fait comme tu as dit avec le preview, prendra t'il en compte le nombre exemplaires demandés dans les cellules ligne 11, lors de l'impression papier, car dans le préview je n'ai qu'un exemplaire qui saffiche
Merci
 

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG