Macro Impression d'onglets selon contenu cellule avec ordre d'impression

DOMERGO

XLDnaute Nouveau
Bonjour à tous et bonne année
J'ai ce code qui avait pour objectif d'imprimer uniquement les onglets ayant une donnée en a1 et de les imprimer dans un ordre précis ( du plus petit au plus grand/ ordre défini par la cellule a1).
Mon problème est que l'ordre est plus ou moins respecté et je ne comprends pas pourquoi.J'imprime sur pdf creator les onglets que je fusionne par la suite (excel 2003).
Si vous voyez un erreur dans le code qui peux expliquer cela , pouvez vous le découvrir.
Je ne suis pas l'auteur de ce code.:confused:

Merci pour votre aide

sub test()
Dim i As Long, a(), n As Long
ReDim a(1 To Sheets.Count, 1 To 2)
For i = Worksheets("listing").Index + 1 To Worksheets.Count
With Worksheets(i)
If .Range("a1").Value <> 0 Then
n = n + 1
a(n, 1) = .Name
a(n, 2) = .Range("a1").Value
End If
End With
Next
VSortMA a, 1, n, 2
For i = 1 To n
Sheets(a(i, 1)).PrintOut
Next
End Sub
Private Sub VSortMA(ary, LB, UB, ref)
Dim M As Variant, i As Long, ii As Long, iii As Long
i = UB: ii = LB
M = ary(Int((LB + UB) / 2), ref)
Do While ii <= i
Do While ary(ii, ref) < M
ii = ii + 1
Loop
Do While ary(i, ref) > M
i = i - 1
Loop
If ii <= i Then
For iii = LBound(ary, 2) To UBound(ary, 2)
temp = ary(ii, iii): ary(ii, iii) = ary(i, iii): ary(i, iii) = temp
Next
ii = ii + 1: i = i - 1
End If
Loop
If LB < i Then VSortMA ary, LB, i, ref
If ii < UB Then VSortMA ary, ii, UB, ref
End Sub
 

Pièces jointes

  • essai.xlsx
    20.5 KB · Affichages: 83
  • essai.xlsx
    20.5 KB · Affichages: 90
  • essai.xlsx
    20.5 KB · Affichages: 87

DOMERGO

XLDnaute Nouveau
Re : Macro Impression d'onglets selon contenu cellule avec ordre d'impression

Bonsoir

Ma question ne trouve pas de réponse , est il donc impossible de créer une macro pouvant à la fois imprimer uniquement les onglets contenant un chiffre <>0 dans la cellule a1 et de plus les imprimer dans l'ordre croissant ou décroissant .
exemple:
feuillet1 a1=3;
feuillet2 a1=5;
feuillet3 a1=1;
feuillet4 a1=3;
feuillet5 a5=0;
feuillet6 a1=6
ma macro m'imprime donc dans l'ordre les onglets suivants:
feuillet3,
feuillet1,
feuillet4,
feuillet6,

Le code que j'ai plus haut n'est pas fiable , il ne respecte pas l'ordre pour tous les chiffres.

Merci pour votre aide
 

Discussions similaires

Réponses
6
Affichages
202

Statistiques des forums

Discussions
311 720
Messages
2 081 924
Membres
101 841
dernier inscrit
ferid87