"découper" les colonnes

  • Initiateur de la discussion noux
  • Date de début
N

noux

Guest
après mon problème pour empiler les colonnes résolu par my dear friend, j'ai le problème inverse...

à partir de:

A1
...
...
...
A100

je voudrais avoir des colonnes de 10 lignes

A1.............K1
......................
A10............K10

voilà voilà
et merci encore
 
M

myDearFriend

Guest
Bonsoir Noux,

Euh..., je croix que Monique t'as déjà donné une réponse tout à fait convenable pour ce problème :

<http://www.excel-downloads.com/html/French/forum/read.php?f=1&i=89608&t=89604>

Et si je peux me permettre.... "convenable" tu l'es un peu moins en changeant de fil comme ça pour la même question et sans même lui adresser un mot.... Enfin, ça ne se fait pas ça, Noux !

Cela dit, pour te montrer qu'ici les gens ont du savoir vivre et ne sont pas rancuniers, tu trouveras ci-dessous une autre réponse à ta question (par VBA) :

Sub EmpilerLignes()
Dim L As Integer
Dim C As Byte
Dim Groupe As Integer
Dim NbGroupe As Integer

Application.ScreenUpdating = False

With ActiveSheet
'Compter le nombre de groupes de 10 cellules dans la colonne A
NbGroupe = .Range("A65536").End(xlUp).Row \ 10

'Pour chaque groupe de cellules
Do
Groupe = Groupe + 1
C = 11
'Pour chaque ligne du groupe
For L = 9 + Groupe To 1 + Groupe Step -1
C = C - 1
'Recopie la valeur en ligne
.Cells(Groupe, C) = .Cells(L, 1)
'Supprime la ligne devenue inutile
.Cells(L, 1).EntireRow.Delete
Next L
Loop Until Groupe > NbGroupe
End With

Application.ScreenUpdating = True

End Sub

Ce n'est pas aussi élégant que la solution de Monique mais ça devrait tout de même fonctionner.

Cordialement.
Didier_mDF
 
N

noux

Guest
je croiS qu'il y a un léger malentendu...
je suis désolé ne pas maitriser le fonctionnement de votre espace de discution mais je me suis simplement perdu entre "nouvveaux" sujets, te ces "anciens" qui n'ont pas l'air d'êrte sur la même page...

pour un soucis de clareté et de lisibilité du forum, j'avais voulu poser mon problème à la suite du premier, trouvant que de créer un topic pour mes petits problèmes était déjà amplement suffisant...

mais je n'ai pas vu le sujet remonter sur la première page, donc j'en ai ouvert un nouveau à contre coeur...

maintenant si çà a été pris pour de l'arogance, j'en suis navré!
j'ai tout fait pour paraitre le plus dicret possible, en restant le plus sobre...

je vais voir ta macro ainsi que celle de Monique...

j'ai le droit de vous remercier?
 
M

myDearFriend

Guest
Bonjour Noux, le Forum.

Désolé Noux, je me suis peut-être emporté sur ce coup là...

Ce n'est pas mon style et je souhaitais simplement te faire remarquer que Monique avait déjà répondu à ta question presqu'une heure avant ce malencontreux nouveau post.

Des remerciements ? On n'en demande pas tant lol ! Mais simplement un petit mot pour dire si la réponse est conforme (ou non) à tes attentes... c'est le bienvenu !

En tout cas, n'hésite pas à demander de l'aide si tu en as encore besoin.

Pour info, tu peux facilement retrouver tes posts précédents en faisant une recherche sur le Forum par Auteur ou par Sujet...

Et avec toutes mes excuses si j'ai été un peu sec... faut dire que je venais de prendre une raclée au quizz avec Dugenou lol ! :)

Cordialement.
Didier_mDF
 
N

noux

Guest
no soucy

là j'ai bien sur pris la solution de Monique qui est plus évidente que la macro que tu proposes...

par contre j'ai un autre petit service à demander
pour ta macro pour "empiler" j'ai été obligé de tronquer un peu l'affaire tellement çà mettait du temps à s'effectuer...
(en limitant à la 1000ème ligne puisque c'est ce qui m'intéressait)

disons que çà prend en gros 30-40 sec pour empiler ainsi une centaine de colonnes...
à vrai dire je voulais savoir combien de temps çà mettrait sur un PC plus récent que celui que j'ai actuellement (350Mhz LOL)...

merci bien
 
M

myDearFriend

Guest
Bonjour Noux, le Forum.

J'ai regardé ton problème de temps d'exécution de la macro et j'ai essayé d'optimisé cette dernière.

Tu trouveras ci-joint un petit exemple utilisant les 2 versions.

Sur ma config, le temps d'exécution est quasiment divisé par 100 !!


La nouvelle procédure se présente comme suit :

'Gèle l'affichage du déroulement de la macro
Application.ScreenUpdating = False
With ActiveSheet
'Détermine la dernière colonne utilisée
DernColonne = .Range("A1").SpecialCells(xlLastCell).Column
DernLigne = .Range("A1").SpecialCells(xlLastCell).Row
'Pour chaque colonne
For C = 2 To DernColonne
'Couper-Coller les données en A
L = .Range("A65536").End(xlUp).Row
.Range(.Cells(L + 1, 1), .Cells(L + DernLigne, 1)).Value = .Range(.Cells(1, C), .Cells(DernLigne, C)).Value
Next C
'Effacer anciennes données
.Range(.Cells(1, 2), .Cells(DernLigne, DernColonne)).ClearContents
.Cells(1, 1).Select
End With
Application.ScreenUpdating = True


Cordialement.
Didier_mDF
 

Pièces jointes

  • PourNoux.zip
    40.3 KB · Affichages: 31

Discussions similaires

Réponses
22
Affichages
875
Réponses
40
Affichages
1 K

Statistiques des forums

Discussions
312 502
Messages
2 089 033
Membres
104 010
dernier inscrit
Freba