2017-09-11 5 views
0

J'ai un classeur Excel dans lequel je dois saisir les informations d'en-tête et les insérer en tant que colonne. Mon set-up actuel ressemble à ceci (à l'exception des données couvrant beaucoup plus loin vers la droite et vers le bas) Current Set UpInsérer chaque cellule dans la ligne d'en-tête sous la forme d'une colonne individuelle AVANT que l'en-tête soit au-dessus

Et je besoin d'une macro qui forme les données pour ressembler à ceci: enter image description here

Est-ce quelque chose comme cela possible avec Excel 2013 VBA?

EDIT
Je ne suis pas en train de transposer la ligne d'en-tête. J'essaye d'insérer une colonne vide avant l'en-tête et écris la valeur à la colonne nouvellement insérée.

+0

Pourriez-vous intégrer les images dans la question elle-même? l'accès est bloqué sur ce réseau – user1

+0

Que diriez-vous d'un tableau croisé dynamique? – Vityata

+0

@Vityata - Je ne savais pas que vous pouviez insérer une rangée avec un tableau croisé dynamique? Mind montrant un exemple? – IcyPopTarts

Répondre

1

cela fera

Sub Macro2() 
Dim c As Integer, i As Integer 
Dim myheader As String 

c = range("b2").End(xlToRight).Column 
For i = 1 To c 
    Columns(2 * i + 1).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 
    myheader = Cells(1, 2 * i).Value 
    Cells(2, 2 * i + 1).Value = myheader 
    Cells(2, 2 * i + 1).Select 
    Selection.AutoFill destination:=range(Selection, Selection.Offset(0, -1).End(xlDown).Offset(0, 1)) 


Next i 

End Sub 

EDIT:

Sub Macro2() 
Dim c As Integer, i As Integer 
Dim myheader As String 

c = range("b2").End(xlToRight).Column 
For i = 1 To c 
    Columns(2 * i).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 
    myheader = Cells(1, 2 * i + 1).Value 
    Cells(2, 2 * i).Value = myheader 
    Cells(2, 2 * i).Select 
    Selection.AutoFill destination:=range(Selection, Selection.Offset(0, -1).End(xlDown).Offset(0, 1)) 
Next i 

End Sub 
+0

TRÈS proche. Cela insère l'en-tête après la colonne de données. Peut-il insérer la ligne d'en-tête avant la colonne de données? – IcyPopTarts

+0

je vais le changer dans la réponse originale maintenant – ExcelinEfendisi