repartition en colonnes

  • Initiateur de la discussion Initiateur de la discussion becooool
  • 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 !

B

becooool

Guest
bonjour

j'ai une liste des fichiers karaoké de 4 000 lignes à la queuleuleu dans une colonne.

Par gain de place sur la page j'ai besoin de mettre en 2 colonnes tout le contenu de mon unique colonne. Mais je dois garder l'ordre alphabétique c'est à dire que sur la première page j'ai besoin d'avoir dans la colonne de droite la suite de la colonne de gauche.

Exemple
======

page 1
---------

AA | AD
AB | AE
AC | AF

page 2
---------

BA | BD
BB | BE
BC | BF

Voilà j'ai expliqué mon cas tant bien que mal car pas facile mais j'espère que vous pourrez m'aider.

Merci beaucoup

n'hésitez pas à me contacter pour plus de renseignements.
 
Salut,

Tu parles de 2 pages avec dans chacune une seule colonne à trier en 2 colonnes

Testes ceci dans un module standard
Sub Princ()
Dim T, V, J&, I&, K&
Dim F()
F = Array("Feuil1", "Feuil2") ' à adpater le nom des feuilles
For I = LBound(F) To UBound(F)
With Sheets(F(I))
T = Range(.[A1], .[A65536].End(xlUp)) 'à adapter la plage
TriMulti T, 1, LBound(T), UBound(T)
ReDim V(1 To UBound(T, 1), 1 To 2)
J = 1
For K = LBound(T, 1) To UBound(T, 1) Step 2
V(J, 1) = T(K, 1)
On Error Resume Next
V(J, 2) = T(K + 1, 1)
J = J + 1
Next K
.[A1].Resize(UBound(V, 1), UBound(V, 2)) = V ' adapter la cellule où on veut le résulat
End With
Next I
End Sub

Sub TriMulti(Tablo, Col As Byte, Min&, Max&) 'ZOn
Dim I&, J&, K&, M, Chaine
I = Min
J = Max
M = Tablo((Min + Max) / 2, Col)
While (I <= J)
While (Tablo(I, Col) < M And I < Max)
I = I + 1
Wend
While (M < Tablo(J, Col) And J > Min)
J = J - 1
Wend
If (I <= J) Then
For K = LBound(Tablo, 2) To UBound(Tablo, 2)
Chaine = Tablo(I, K)
Tablo(I, K) = Tablo(J, K)
Tablo(J, K) = Chaine
Next K
I = I + 1
J = J - 1
End If
Wend
If (Min < J) Then TriMulti Tablo, Col, Min, J
If (I < Max) Then TriMulti Tablo, Col, I, Max
End Sub

A+++
 
Salut Zon,

J'ai relu attentivement la question et je crois que je suis dans le bon, enfin presque (comme quoi il est plus difficile d'écrire correctement une question qu'une procédure ou une formule - lol).

Dans l'exemple je remarque maintenant qu'il y a un saut de page (et non de feuille) à chaque changement du premier caractère de la valeur.
Il faudrait donc au moins une feuille de 26 pages (une page minimum par lettre de l'alphabet).
Attendons becooool pour nous départager.

Il y a, entre-autres, deux choses que je ne parviens pas à faire par formule : récupérer le nombre de lignes par page et forcer un saut de page.

Si tu avais une idée ?

Ândré.

PS : Dans ma langue maternelle, ton pseudo veut dire "soleil", bien agréable pour ceux qui vivent dans ton entourage.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
707
Réponses
3
Affichages
231
Retour