Tri complexe pour impression

  • Initiateur de la discussion Initiateur de la discussion ufernet
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ufernet

XLDnaute Junior
Bonjour,

Je souhaite imprimer au moyen d'un publipostage Word un tableau d'excel. Mon imprimante ne fait pas le A6 (4 fois plus petit que le A4). J'imprime 4 fiches par feuille A4 puis je les coupe avec un massicot. Le problème c'est que chaque enregistrement est différent et que l'ordre est primordial. Je voudrais trier mon tableau, qui a un nombre variable de ligne, pour que les feuilles s'impriment dans l'ordre qui me convient. J'ai mis un exemple dans le tableau joint.

Sur l'onglet Avant : le tableau tel qu'il est pour cette semaine. J'ai rajouté une colonne "Numéro d'enregistrement" de 1 à n (647 cette semaine); puis une colonne "Numéro pour le Tri" ou j'ai mis une formule: N2+4 et copie vers le bas (4 parcequ'il y a 4 fiches, soit une ligne du tableau, par feuille A4). Lorsque j'arrive à l'enregistrement 625 j'ecris 2 puis à l'enregistrement 626 j'écris 3 puis à l'enregistrement 627 j'écris 4 et c'est fini. Je fais un copier coller en valeur de la colonne "Numéro pour le tri" Je fais le tri sur cette colonne et c'est bon. J'ai mis le résultat dans l'onglet Aprés.
C'est un peu long et le risque d'erreur est important. L'idéal serait une formule dans la colonne "Numéro pour le tri" ou une macro qui aboutisse au même résultat. Sachant que le nombre de ligne est variable d'une semaine sur l'autre et qu'il faut 1 heure pour tout trier si on imprime le tableau tel quel.

J'ai essayé une formule mais je n'arrive pas à déterminer dans quelle cellule il faut repartir à 2; 3 ou 4.

Merci de votre aide.
 

Pièces jointes

Re : Tri complexe pour impression

Bonjour,

Une piste avec le code ci-dessous à copier dans un module standard
Code:
Sub NumeroPourTri()
Dim S As Worksheet
Dim R As Range
Dim NbLig&
Dim Tranche&
Dim Pas&
Dim i&
Dim cpt&
Dim T()
ActiveSheet.Copy after:=Sheets(Sheets.Count)
Set S = ActiveSheet
Set R = S.[a1].CurrentRegion
NbLig& = R.Rows.Count - 1
Tranche& = NbLig& \ 4
If Tranche& * 4 < NbLig& Then Tranche& = Tranche& + 1
ReDim T(1 To NbLig&, 1 To 1)
Pas& = 1
For i& = 1 To NbLig&
  T(i&, 1) = Pas&
  Pas& = Pas& + 4
  If i& Mod Tranche& = 0 Then
    cpt& = cpt& + 1
    Pas& = cpt& + 1
  End If
Next i&
Set R = S.Range(S.Cells(2, R.Columns.Count + 1), S.Cells(NbLig& + 1, R.Columns.Count + 1))
R = T
End Sub

Sélectionnez la feuille à traiter puis lancez la macro "NumeroPourTri". Le résultat s'affiche dans une nouvelle feuille.

Je joins un classeur exemple pour plus de facilité.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 tri dans Excell
Réponses
19
Affichages
488
Réponses
40
Affichages
2 K
Réponses
9
Affichages
483
Réponses
6
Affichages
502
Réponses
3
Affichages
490
Réponses
28
Affichages
2 K
Retour