Mise en page et impression sur plusieurs colonnes

thydho

XLDnaute Nouveau
Bonjour à tous,

première question sur ce forum ou je viens de m'inscrire.
J'ai un fichier de produits de 16000 et quelques lignes sur deux colonnes (référence, prix), que je souhaite imprimer pour le distribuer à mes clients (ils aiment bien le papier...). Le problème c'est qu'il fait 320 pages sorti d'Excel, et que de le mettre en page dans World prend un temps fou, d'autant que j'en ai quatre versions différentes à sortir.
Je souhaite donc le mettre en page dans Excel (version 2007 sur PC Win 7 64bits pro) en faisant en sorte qu'Excel ne me mette pas seulement 2 colonnes par pages.
J'ai vu sur le forum une question similaire (voir ici: https://www.excel-downloads.com/threads/impression-sur-plusieurs-colonnes.26387/) mais les VBA et macros proposées ne marchent pas avec mon fichier (peut-être parce que j'ai deux colonnes au lieu d'une ?).
Quelqu'un aurait-il une solution ?
En pièce jointe une version réduite à 5000 lignes du fichier, sinon ça dépasse les limites de taille de fichier du forum, même en .rar.

D'avance mille fois merci.

Thydho
 

Pièces jointes

  • Copie de TARIF 5000 PRODUITS.xlsx
    105.6 KB · Affichages: 146

job75

XLDnaute Barbatruc
Re : Mise en page et impression sur plusieurs colonnes

Bonsoir thydho,

On peut découper la liste en 2, 3, 4, 5, 6... morceaux et coller ces morceaux dans les colonnes suivantes.

De manière à imprimer 4, 6, 8, 10, 12... colonnes sur une page en largeur.

Faites des essais. Cela vous convient-il ? Alors combien de morceaux ?

A+
 

thydho

XLDnaute Nouveau
Re : Mise en page et impression sur plusieurs colonnes

Merci de votre réponse! J'ai bien pensé à cette solution "manuelle", mais sur 16000 lignes, 320 pages, en 4 versions différentes... j'avoue que j'ai renoncé, ça me prendrait vraiment trop de temps ! Je pense qu'une macro ou un code VBA devraient faire le truc ! Merci encore en tous cas.

Thydho



Bonsoir thydho,

On peut découper la liste en 2, 3, 4, 5, 6... morceaux et coller ces morceaux dans les colonnes suivantes.

De manière à imprimer 4, 6, 8, 10, 12... colonnes sur une page en largeur.

Faites des essais. Cela vous convient-il ? Alors combien de morceaux ?

A+
 

chris

XLDnaute Barbatruc
Re : Mise en page et impression sur plusieurs colonnes

Bonjour
Bise à job

En fusion publipostage, ça prend 5 mn pour tout imprimer nickel sur 2 ou 3 colonne X 2... (43 pages en 3 colonnes X2)

Mais c'est quoi les 4 versions ?
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Mise en page et impression sur plusieurs colonnes

Bonjour le fil,

Sinon par code
Code:
Sub MiseEnPage()
  Dim DLig As Long, RngS As Range, RngD As Range
  Dim NbG As Long, Groupe As Long
  Dim NbLigPP As Long ' Nombre de ligne par page
  Dim Col As Integer
  ' Commencer sur la 3ème colonne
  Col = 3
  ' Selon la marge que l'on souhaite avoir
  NbLigPP = 50  ' Faire un apperçu avant impression pour le savoir
  ' Récupérer la dernière ligne remplie
  DLig = Range("A" & Rows.Count).End(xlUp).Row
  ' Calculer le nombre de groupe de ligne
  NbG = Int(DLig / NbLigPP)
  ' Pour chaque groupe de X lignes
  For Groupe = 1 To NbG
    ' Définir le groupe de cellules sources
    If Groupe = 1 Then
      Set RngS = Range(Cells((Groupe * NbLigPP) + 1, 1), Cells(((Groupe + 1) * NbLigPP) - 1, 2))
    Else
      Set RngS = Range(Cells((Groupe * NbLigPP), 1), Cells(((Groupe + 1) * NbLigPP) - 1, 2))
    End If
    'RngS.Select
    ' Définir le groupe de cellules de destinations
    Set RngD = Range(Cells(2, Col), Cells(2 + NbLigPP - 2, Col + 1))
    'RngD.Select
    ' Copier les valeurs d'entête
    Range(Cells(1, Col), Cells(1, Col + 1)).Value = Range("A1:B1").Value
    ' Copier les valeurs
    RngD.Value = RngS.Value
    ' Incrémenter la colonne
    Col = Col + 2
  Next Groupe
End Sub
Permets de créer les colonnes selon un groupe de valeur paramétrable

A+
 

thydho

XLDnaute Nouveau
Re : Mise en page et impression sur plusieurs colonnes

Bonsoir,

fusion&publipostage dans Word ? je suis pas sûr... Sinon les quatre versions c'est que j'ai quatre versions de tarifs selon la consommation de mes clients. Je suis dans la fourniture de bureau et papeterie et j'ai des tarifs différenciés selon le chiffre d''affaire.
Merci en tous cas

Bonjour
Bise à job

En fusion publipostage, ça prend 5 mn pour tout imprimer nickel sur 2 ou 3 colonne X 2... (43 pages en 3 colonnes X2)

Mais c'est quoi les 4 versions ?
 

thydho

XLDnaute Nouveau
Re : Mise en page et impression sur plusieurs colonnes

Merci du code, je vais essayer... Mais comment je dois le mettre dans ma feuille Excel ? Faut avouer que je suis un peu débutant dans les fonctions complexes et le VBA...
Merci à bientôt

thydho
 

chris

XLDnaute Barbatruc
Re : Mise en page et impression sur plusieurs colonnes

Bonjour

Si, si, fusion publipostage marche très bien : j'ai fait un test avant de poster d'où le nombre de pages indiqué.
Je te joins deux exemples, l'un sans cadre, l'autre sous forme tableau. Il faudra refaire le lien vers ta source Excel et mettre les en-têtes et pieds adaptés.
 

Pièces jointes

  • Fusion2.zip
    28.3 KB · Affichages: 288
  • Fusion2.zip
    28.3 KB · Affichages: 258
  • Fusion2.zip
    28.3 KB · Affichages: 253

job75

XLDnaute Barbatruc
Re : Mise en page et impression sur plusieurs colonnes

Bonjour à tous :)

Au post #2 je parlais de découpe...

Elle est bien sûr faite par macro, dans un nouveau document :

Code:
Sub Imprimer()
Dim decoupe As Byte, h As Long, i As Byte, plage As Range
decoupe = 6 'nombre de colonnes imprimées = 12
Application.ScreenUpdating = False
Feuil1.Copy 'copie dans un nouveau document
With ActiveSheet
  h = Int(.[A65536].End(xlUp).Row / decoupe) + 1
  For i = 2 To decoupe
    .[A1:B1].Copy .[A1].Offset(, 2 * i - 2) 'titres
    Set plage = .[A1:B1].Offset(h * (i - 1)).Resize(h)
    plage.Cut .[A2].Offset(, 2 * i - 2) 'Couper/Coller
  Next
  .PageSetup.FitToPagesWide = 1
  .PageSetup.FitToPagesTall = False
  .PrintOut Preview:=True 'impression après aperçu
  .Parent.Close False 'fermeture du document
End With
End Sub
Fichier .xls joint.

A+
 

Pièces jointes

  • TARIF 5000 PRODUITS(1).xls
    348 KB · Affichages: 195

job75

XLDnaute Barbatruc
Re : Mise en page et impression sur plusieurs colonnes

Re,

Bien sûr s'il faut répéter la ligne des titres sur chaque page :

Code:
.PageSetup.PrintTitleRows = "$1:$1"
Fichier (2).

A+
 

Pièces jointes

  • TARIF 5000 PRODUITS(2).xls
    350 KB · Affichages: 205

Lone-wolf

XLDnaute Barbatruc
Re : Mise en page et impression sur plusieurs colonnes

Bonjour job75, thydho et les autres aussi.

Avec le code de job75 + orientation paysage, marges personnalisées G=0 D=0, centrer horizontalement;
j'obtiens 22 pages à imprimer.


A+ :cool:
 

Lone-wolf

XLDnaute Barbatruc
Re : Mise en page et impression sur plusieurs colonnes

Là, je ne comprends plus rien. :confused:

Avec le fichier(2) de ton précédent message (en l'ouvrant directement), j'obtiens bien 11 pages.
Chez moi, sans modifier le fichier, j'obtiens 30 pages... cherchez l'erreur?!?! :confused: :confused: :confused:

A+ :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 975
Messages
2 094 082
Membres
105 937
dernier inscrit
thibodu388