VBA excel : insertion de 5 lignes + transposition

Résolu
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

  1. 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
    1. Contributeur
      Bonjour,

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

      0
      1. J'ai plusieurs fichiers, ça peut aller jusqu'à 20 000 lignes.
        0
      2. Contributeur
        C'est parti ! réponse certainement demain
        0
    2. Contributeur
      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
      1. C'est super ! Ça marche nickel et en plus c'est immédiat !
        Au top ! Merci beaucoup ! :)
        0