OVH Cloud OVH Cloud

roland: tri automatique

3 réponses
Avatar
Roland
Mon pb:
J'ai une feuille qui ne contient qu'un seul tableau, créé automatiquement, de x lignes sur 2 col. A et B seulement. Comment le trier automatiquement, dans une procédure VBA, dans l'ordre croissant de la colonne A ? J'ai essayé avec l'instruction Sort, mais plouf ! (je récupère... une feuille blanche!
2) cerise sur le gâteau : me serait-il possible de restructurer ce tableau, après son tri, en groupes de 2 colonnes juxtaposées, sur 10 ou 12 colonnes au total, par exemple ? Ceci me permettrait de diminuer le nombre de lignes qui est très important (de l'ordre de 2000). Il s'agirait de passer d'un tableau de 2000 lignes x 2 colonnes, par exemple, à un tableau de 5 fois (côte à côte) 400 lignes x 2 col. Un big merci, par avanc

3 réponses

Avatar
Modeste
;-)))
avant de penser au gateau et à la cerise....
pour faire prendre la mayonnaise, ici le terme "Bonjour"
est un ingrédient vivement recommandé ;-)))

pour completer il conviendrait de jeter un oeil ici :
Pour connaître les habitudes de mpfe (et les erreurs à
éviter, comme les fichiers joints...), tu peux lire ces
messages publiés régulièrement
ici, avec l'un de ces intitulés
- FAQ MPFE http://dj.joss.free.fr/netiquet.htm
(nétiquette, conseils...)
- [Charte] du forum MPFE http://minilien.com/?9Ag3gXpmA4
et consulter cette page
http://www.excelabo.net/mpfe/connection.htm
(connexion,conseils...), à consulter absolument si tu
suis le forum depuis un site web (la solution la moins
efficace et la moins confortable) ou avec le serveur de
Wanadoo (très peu performant quant au délai d'affichage
et au nombre de messages publiés).
Le serveur à utiliser : news.microsoft.com - ou cliquer
directement sur
news:microsoft.public.fr.excel

;-)))
Si tu as lu jusqu'ici sache que tu es bienvenu Roland !!!

une solution parmi d'autres :
Sub Macro1()
Dim NBcolonnes$
Dim NBlignes!, NBC!
Dim ColOrig!, ColDest!, LigOrig!, LigDest!
Dim COL!, LIG!, TLIG!
'------tri----------
[A1].CurrentRegion.Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, _
Key2:=Range("B2"), Order2:=xlAscending, _
Header:=xlYes, OrderCustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
NBlignes = Selection.Rows.Count
Reprise:
NBcolonnes = InputBox("ce tableau comporte " &
NBlignes & " lignes" _
& Chr(10) & "Combien de ruptures voulez-vous ?(max
84)", 2)
If Not IsNumeric(NBcolonnes) Then GoTo Reprise
NBC = CInt(NBcolonnes)
If NBC > 84 Then GoTo Reprise '---84*3%2
If NBC <= 1 Then Exit Sub
'---Lignes par tableau
TLIG = 1 + Int(NBlignes / NBC)
'---colonne origine
ColOrig = 1
For COL = 1 To NBC
'---colonne destination
ColDest = 4 * COL
'---Répetition des entetes
Cells(1, ColDest) = Cells(1, ColOrig)
Cells(1, ColDest + 1) = Cells(1, ColOrig + 1)
For LIG = 1 To TLIG
'---ligne origine
LigOrig = 1 + LIG + (TLIG * (COL - 1))
'---ligne destination
LigDest = 1 + LIG
Cells(LigDest, ColDest) = Cells(LigOrig, ColOrig)
Cells(LigDest, ColDest + 1) = Cells(LigOrig,
ColOrig + 1)
Next
Next

End Sub
Avatar
Roland
Merci pour la leçon de politesse. Je la prends avec le sourire car ce n'est pas mon habitude d'être impol.i Ici le bonjour a été oublié, de toute bonne foi, emporté que j'étais par mon souci "technique " Donc, bonjour et surtout MERCI pour ta solution proposée? Je ne risquais pas de trouver ça tout seul, je te jure !! ; !!!
Je vais donc l'essayer, ta solution, et je te dira si tout va bien
Puis-je oser abuser en te propsoant de te soumettre un autre (grave) pb que j'ai avec des machines en réseau Win 98 et une recherche automatique de répertoire, poiur mes gamins d'école (je suis bénévole) Si tu me réponds, ce sera déjà un presque "oui" (Merci d'avance!! ) ROLAND mon e-mail:
Avatar
Modeste
;-)))
c'était tout au plus un rappel de bons usages....
Ton message étant resté orphelin quelques temps, il
fallait peut etre y voir là, la raison ????

Malheureux !!! tu n'as hélas pas consulté suffisament les
liens fournis :-(
ne mettre jamais son adresse perso en clair sur un
forum.....
les Robots spammeurs vont récupèrer cet adresse !!!!

quand à t'aider pour d'autres problemes concernant
Excel , je ne m'engagerai pas....

Mais Ici tu trouvera toujours un bénévole pour te
proposer une solution, plus ou moins rapidement, plus ou
moins efficace, plus ou moins performante, mais toujours
gratuite ;-))
je dirai même il y en a qui ne guettent que les questions
ardues ;-)))

vas-y soit clair, pose ta question !!!!
cela peut interesser d'autres personnes.?
;-)))
si cest pour Windows98 tu peux essayer là:
microsoft.public.fr.windows98

@+
-----Message d'origine-----
Merci pour la leçon de politesse. Je la prends avec le
sourire car ce n'est pas mon habitude d'être impol.i Ici

le bonjour a été oublié, de toute bonne foi, emporté
que j'étais par mon souci "technique " Donc, bonjour et
surtout MERCI pour ta solution proposée? Je ne
risquais pas de trouver ça tout seul, je te
jure !! ; !!!
Je vais donc l'essayer, ta solution, et je te dira si
tout va bien.

Puis-je oser abuser en te propsoant de te soumettre un
autre (grave) pb que j'ai avec des machines en réseau

Win 98 et une recherche automatique de répertoire, poiur
mes gamins d'école (je suis bénévole) Si tu me
réponds, ce sera déjà un presque "oui" (Merci
d'avance!! ) ROLAND mon e-mail:

.