Regrouper une liste sur plusieurs colonnes
moreauste
-
moreauste -
moreauste -
Bonjour,
Je souhaiterai savoir comment réduire le nombre de page à l'impression en utilisant plusieurs colonnes Excel automatiquement.
Je m'explique, voici un exemple de tableau sur 3 colonnes qui comporte 1200 références :
0001 - Produit A - Prix A
0002 - Produit B - Prix B
0003 - Produit C - Prix C
....
1200 - Produit XXX - Prix XXX
Aujourd'hui, cela prend 1/3 d'une page A4 mais sur xx pages.
Je souhaiterai utiliser l'espace perdu en utilisant toutes les colonnes disponibles à droite de ma feuille Excel
Imaginons que nous arrivions à la ligne 0030 en bas de page, je souhaiterai que la référence 0031 remonte en haut et en face de la référence 0001 de la première page plutôt que d'être sur la deuxième page.
J'espère que je me suis bien exprimé.
Merci.
Je souhaiterai savoir comment réduire le nombre de page à l'impression en utilisant plusieurs colonnes Excel automatiquement.
Je m'explique, voici un exemple de tableau sur 3 colonnes qui comporte 1200 références :
0001 - Produit A - Prix A
0002 - Produit B - Prix B
0003 - Produit C - Prix C
....
1200 - Produit XXX - Prix XXX
Aujourd'hui, cela prend 1/3 d'une page A4 mais sur xx pages.
Je souhaiterai utiliser l'espace perdu en utilisant toutes les colonnes disponibles à droite de ma feuille Excel
Imaginons que nous arrivions à la ligne 0030 en bas de page, je souhaiterai que la référence 0031 remonte en haut et en face de la référence 0001 de la première page plutôt que d'être sur la deuxième page.
J'espère que je me suis bien exprimé.
Merci.
A voir également:
- Regrouper une liste sur plusieurs colonnes
- Liste déroulante excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Comment faire des colonnes sur word - Guide
- Déplacer une colonne excel - Guide
4 réponses
peut etre une solution
recopier sur une autre feuille copie le catalogue remis en page
pour celà
nommer tab le catalogue complet
Créer une feuille et la nommer Copie
placer un bouton sur la feuille catalogue
y affecter le code
modifier les constantes selon l'utilisation
voir en exemple
http://www.cijoint.fr/cjlink.php?file=cj201011/cijwdlFuUd.xls
bonne suite
recopier sur une autre feuille copie le catalogue remis en page
pour celà
nommer tab le catalogue complet
Créer une feuille et la nommer Copie
placer un bouton sur la feuille catalogue
y affecter le code
modifier les constantes selon l'utilisation
Option Explicit
Private Sub CommandButton1_Click()
Const nbCoPr = 2 ' nombre de colonnes pour 1 produit
Const nbLi = 4 ' nombre de lignes imprimables par feuille
Const nbCo = 3 ' nombre de colonnes (de produit) souhaitées par feuilles
Const PremLi = 1 ' premiere ligne sur la feuille Copie
Dim nbPr As Long ' nombre de produits du catalogue
Dim NuFe As Long ' numéro de feuille imprimable (NbLi x nbCo)
Dim nupr As Long ' numéro de produit dans le catalogue
Dim LiTab As Long ' Ligne courante du catalogue (nommé Tab sur la feuille)
Dim lp As Long ' Ligne courante sur la feuille Copie
Dim cp As Long ' Colonne courante sur la feuille Copie
Dim co As Long ' colonne de service
Dim NuCoPr As Long ' Numéro colonne produit sur la feuille Copie
Worksheets("Copie").Range("a1:z1000").ClearContents
nbPr = Range("Tab").Rows.Count
NuFe = 1
For nupr = 1 To nbPr
LiTab = nupr
lp = PremLi + ((nupr - 1) Mod (nbLi)) + nbLi * ((nupr - 1) \ (nbLi * nbCo))
If (nupr Mod (nbLi * nbCo)) = 0 Then
co = nbCo * nbCoPr - 1
NuFe = NuFe + 1
Else
co = 1 + ((nupr - 1 - (nbLi * nbCo) * (NuFe - 1)) \ nbLi) * nbCoPr
End If
For NuCoPr = 1 To nbCoPr
cp = co + NuCoPr - 1
Worksheets("Copie").Cells(lp, cp).Value = Range("Tab").Cells(LiTab, NuCoPr).Value
Next NuCoPr
Next nupr
End Sub
voir en exemple
http://www.cijoint.fr/cjlink.php?file=cj201011/cijwdlFuUd.xls
bonne suite
Bonjour moreauste.
Et sans macro, en C2 la formule =A32, à recopier dans la plage C2:I31.
Puis sélectionner C2:I31 et faire Copier/Collage spécial Valeurs
* attention, travailler sur une copie, pas sur le fichier original : on ne sait jamais !
Cordialement.
Et sans macro, en C2 la formule =A32, à recopier dans la plage C2:I31.
Puis sélectionner C2:I31 et faire Copier/Collage spécial Valeurs
* attention, travailler sur une copie, pas sur le fichier original : on ne sait jamais !
Cordialement.
Excuse-moi, j'ai été un peu rapide (tout content d'avoir trouvé une façon de faire sans VBA ...)
Alors je reprends et je rectifie :
1) En D2, formule =A32 ; recopier dans la plage D2:F31
2) En G2, formule =A62 ; recopier dans la plage G2:I31
3) Sélectionner D2:I31, faire Copier, puis (sans bouger) Collage spécial Valeurs
4) Supprimer les lignes 32 à 91 ; les données suivantes remontent de 60 lignes
5) Recommencer la manoeuvre 12 fois (éventuellement en se faisant aider d'une macro enregistrée) ...
Alors je reprends et je rectifie :
1) En D2, formule =A32 ; recopier dans la plage D2:F31
2) En G2, formule =A62 ; recopier dans la plage G2:I31
3) Sélectionner D2:I31, faire Copier, puis (sans bouger) Collage spécial Valeurs
4) Supprimer les lignes 32 à 91 ; les données suivantes remontent de 60 lignes
5) Recommencer la manoeuvre 12 fois (éventuellement en se faisant aider d'une macro enregistrée) ...
la technique de patrice33740 marche bien un simple copier/coller transporte tout
sinon avec la macro il faut aussi copier le format
pour transporter la couleur et la largeur ajouter après l'instruction Worksheets("Copie")... les deux lignes
Worksheets("Copie").Cells(lp, cp).Interior.Color = Range("Tab").Cells(LiTab, NuCoPr).Interior.Color
Worksheets("Copie").Cells(lp, cp).ColumnWidth = Range("Tab").Cells(LiTab, NuCoPr).ColumnWidth
bonne suite
sinon avec la macro il faut aussi copier le format
pour transporter la couleur et la largeur ajouter après l'instruction Worksheets("Copie")... les deux lignes
Worksheets("Copie").Cells(lp, cp).Interior.Color = Range("Tab").Cells(LiTab, NuCoPr).Interior.Color
Worksheets("Copie").Cells(lp, cp).ColumnWidth = Range("Tab").Cells(LiTab, NuCoPr).ColumnWidth
bonne suite
moreauste avait bien spécifié au départ "Je souhaiterai utiliser l'espace perdu en utilisant toutes les colonnes disponibles à droite de ma feuille Excel. Imaginons que nous arrivions à la ligne 0030 en bas de page, je souhaiterai que la référence 0031 remonte en haut et en face de la référence 0001 de la première page plutôt que d'être sur la deuxième page."
Voilà pourqui je m'étais étonné ...
https://forums.commentcamarche.net/forum/affich-19697841-regrouper-une-liste-sur-plusieurs-colonnes#5
Voilà pourqui je m'étais étonné ...
https://forums.commentcamarche.net/forum/affich-19697841-regrouper-une-liste-sur-plusieurs-colonnes#5
Bonjour,
Autre solution :
Ouvre un document Word vierge,
Met le en page avec 2 ou 3 colonnes
Copie ton tableau Excel dans Word.
Patrice
Nicolas dit toujours : « C'est facile quand on connait la réponse ! »
Autre solution :
Ouvre un document Word vierge,
Met le en page avec 2 ou 3 colonnes
Copie ton tableau Excel dans Word.
Patrice
Nicolas dit toujours : « C'est facile quand on connait la réponse ! »
Merci à vous tous,
Patrice33740,
Je n'arrive pas à reproduire ce que tu dis... J'ai créé un tableau de 3 colonnes sous Word puis j'ai copié la colonne 1 du tableau fournie en pièce jointe par ccm81... Tout se copie dans la première colonne sur x pages mais pas dans les autres colonnes ! Que fais-je donc pas ?
ccm81,
Super ta macro mais comment fais-tu pour un collage avec la mise en forme car actuellement c'est plutôt un collage spécial avec uniquement le texte qui est fait (c'est un catalogue produit avec des couleurs pour indiquer si cela est destiné pour une femme ou un homme).
Merci.
Patrice33740,
Je n'arrive pas à reproduire ce que tu dis... J'ai créé un tableau de 3 colonnes sous Word puis j'ai copié la colonne 1 du tableau fournie en pièce jointe par ccm81... Tout se copie dans la première colonne sur x pages mais pas dans les autres colonnes ! Que fais-je donc pas ?
ccm81,
Super ta macro mais comment fais-tu pour un collage avec la mise en forme car actuellement c'est plutôt un collage spécial avec uniquement le texte qui est fait (c'est un catalogue produit avec des couleurs pour indiquer si cela est destiné pour une femme ou un homme).
Merci.