Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/10/2011, 19h17   #1
Invité de passage
 
Homme
Enseignant Chercheur
Inscription : octobre 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Mali

Informations professionnelles :
Activité : Enseignant Chercheur
Secteur : Enseignement

Informations forums :
Inscription : octobre 2011
Messages : 1
Points : 0
Points : 0
Par défaut Macro pour transposer les colonnes en lignes

Bonjour a tous,
j'ai besoin d'une commande macro excel pour transposer les colonnes en lignes. Dans ma base les donnée se présentent de cette manière:

Nom1 Sexe1 Age1 Statut1 Nom2 Sexe2 Age2 Statut2
Bob M 35 Marié Abel M 15 Celib

Je voudrai transposer ces données sous la forme:

Nom Sexe Age Statut
Bob M 35 Marié
Abel M 15 Celib

Je ne suis pas très doué en programmation.
Merci
boubadia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 20h51   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Bonsoir
Ci-joint proposition avec en ligne 1 les titres et en ligne 2 les données à déplacer de Feuil1 (à adapter)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Test()
Dim LastCol As Integer, i As Integer, j As Integer
 
With Worksheets("Feuil1")                                           'A adpter au nom de ta feuille
    j = 2
    LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column        'N° de colonne de la dernière cellule remplie de la ligne 1
    For i = 5 To LastCol Step 4                                     'on boucle de la colonne 5 à la dernière avec un pas de 4 colonnes
        j = j + 1                                                   'on incrémente la ligne de collage
        .Range(.Cells(2, i), .Cells(2, i + 3)).Cut .Range("A" & j)  'on coupe les 4 cellules à partir de la ième cellule qur la ligne 2 qu'on colle en Aj
    Next i
    .Range(.Cells(1, 5), .Cells(1, LastCol)).EntireColumn.Delete    'on supprime les colonnes à partir de la 5ème (suppression des entêtes)
End With
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h19.


 
 
 
 
Partenaires

Hébergement Web