Programmation Excel VBA

Matt -  
 matt -
Bonjour,
dans le cadre de mon travail d'été je dois modifier et améliorer un fichier de consignations excel 2003 utilisant de la programmation VBA. Le problème étant que je n'ai jamais pratiqué ce langage j'apprend en allant depuis une semaine en cherchant à droite à gauche sur les forums, mais là je coince donc je voudrai faire appel à votre aide.
Le fichier génère automatiquement des bons de consignations dans une feuille nommée "consignation". Il y a une macro pour lancer l'impression, cependant au bout de la troisième page tout se décalle. Je voudrai donc essai grâce à une boucle et un printarea redefinir la zone d'impression et lancer une nouvelle impression tout les 3 bons, sachant que la taille des bons est tout le temps la même.
Je vous met le code que j'ai essayé de commencer sans connaissance

'Impression des bons de consignation
Private Sub impression()
 
  'Selection de trois bons
    'ActiveSheet.PageSetup.PrintArea = "$A3:$G62"
  
  'coordonnées des trois prochains bons
    'ActiveSheet.PageSetup.PrintArea = "$A63:$G121"
  
        '-------------------- test boucle ---------------------
            Dim i As Integer
            Dim j As Integer

            i = 3
            j = 62
            
            While "Bon existant" (là je bloque)
            
              ActiveSheet.PageSetup.PrintArea = "$Ai:$Gj"
              
                With Sheets("consignation").PageSetup
                    .CenterHorizontally = True
                    .CenterVertically = True
                    .LeftMargin = Application.InchesToPoints(0.25)
                    .RightMargin = Application.InchesToPoints(0.25)
                    .TopMargin = Application.InchesToPoints(0.45)
                    .BottomMargin = Application.InchesToPoints(0.45)
                    .HeaderMargin = Application.InchesToPoints(0)
                    .FooterMargin = Application.InchesToPoints(0)
                End With
                
              Sheets("consignation").PrintOut Copies:=1, Collate:=True
              i = i + 60
              j = j + 59
              
            Wend
             
        '-------------------- fin test ------------------------

End Sub


Je vous remerci d'avance en éspérant avoir été assez clair.
Merci.
A voir également:

2 réponses

François
 
Salut,

il y a peut-etre une autre approche : si il y a un décalage à partir de la troisième page, c'est peut-être parceque ta page intiale est trop grande et tu peux essayer de simplement réduire la hauteur d'une ligne afin que ca tienne réellement sur une page.

a+
0
matt
 
J'ai déjà essayé tout ça. Mais j'ai réussi à trouver une macro permettant d'insérer des saut de page toutes les n lignes et sa marche très bien.
Merci quand même de ta réponse!
0