VBA excel : insertion de 5 lignes + transposition

Résolu/Fermé
Signaler
-
 apprentiexcel -
Bonjour,

J'ai un programme à réaliser sur EXCEL VBA et je n'arrive pas à résoudre mon problème AU SECOURS !!!!

J'ai un tableur du type :
04/08/2014 164 157 154 153 153 144
04/08/2014 141 148 132 132 133 133
04/08/2014 137 135 135 141 142 136
04/08/2014 133 134 127 132 134 132
04/08/2014 125 129 124 124 123 123
04/08/2014 133 136 126 127 131 130

et souhaite insérer entre chaque ligne, 5 lignes vides, puis transposer les 5 colonnes en dessous de la colonne 2, pour avoir le résultat suivant (le tout dans la même colonne):

04/08/2014 164 157 154 153 153 144
157
154
153
153
144
04/08/2014 141 148 132 132 133 133
148
132
132
133
133
04/08/2014 137 135 135 141 142 136
135
135
141
142
136
04/08/2014 133 134 127 132 134 132
134
127
132
134
132
04/08/2014 125 129 124 124 123 123
129
124
124
123
123
04/08/2014 133 136 126 127 131 130
136
126
127
131
130

J'espère que vous avez l'esprit plus logique que moi ! ;)
Merci d'avance pour vos réponses !

3 réponses


on ne le voit pas bien dans le message, mais je précise je souhaite transposer les chiffres des 5 dernières colonnes en dessous de la colonne 2

Merci d'avance ! =)
0
Messages postés
16546
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 janvier 2022
3 259
Bonjour,

combien as tu de lignes (environ) au départ ?

0

J'ai plusieurs fichiers, ça peut aller jusqu'à 20 000 lignes.
0
Messages postés
16546
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 janvier 2022
3 259
C'est parti ! réponse certainement demain
0
Messages postés
16546
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 janvier 2022
3 259
Ben ce sera avant la soupe de châtaignes et l'omelette aux cèpes ;o)

Option Explicit
Option Base 1
'--------------------------------------------------------------------------
Sub transposer_5()
Dim Derlig As Long, T_in, T_out
Dim Cptr_in As Long, cptr_out As Long, Col As Byte

'----------------------------------------------------initialisations
Application.ScreenUpdating = False
'mémorisation des tableaux brut et sortie
Derlig = Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
T_in = Range("A2:G" & Derlig) ' adapter ligne départ
ReDim T_out(UBound(T_in) * 6, 7)

'---------------------------------------------------réorganisation des données
cptr_out = 1
For Cptr_in = 1 To UBound(T_in)
For Col = 1 To 7
T_out(cptr_out, Col) = T_in(Cptr_in, Col)
Next
For Col = 2 To 7
T_out(cptr_out, 2) = T_in(Cptr_in, Col)
cptr_out = cptr_out + 1
Next
Next
'-----------------------restitution de la réorganisation
Columns("L:R").Clear 'transformer en A:G" après essais
Range("L2").Resize(UBound(T_out), 7) = T_out 'a transformer en A2 après essais
End Sub


La maquette
http://www.cjoint.com/c/EKfrfSLt8NL

tu dis

Michel
0

C'est super ! Ça marche nickel et en plus c'est immédiat !
Au top ! Merci beaucoup ! :)
0