Macro pour transposer lignes en colonnes
Bonsoir,
Je vous sollicite pour avoir un code macro pour transposer des lignes en colonnes. Je vous en remercie par avance.
Vous trouverez ci-joint le fichier Excel.
Exemple pour la ligne 5 : Résultat manuel en 4 colonnes ABCD
Colonne A B C D
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2000 NA
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2001 17042000
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2002 16600000
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2003 17272000
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2004 20278000
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2005 27161000
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2006 28674000
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2007 31531000
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2008 30035000
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2009 30903000
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2010 33706000
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2011 37232000
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2012 35594000
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2013 29124000
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2014 32479829
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2015 34462629
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2016 34548129
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2017 32576303
AP MOELLER MAERSK - ACCOUNTS PAYABLE 944398(WC03040) 2018 33426653
Bonjour Mastoury le forum
ton fichier en retour avec un bouton tu cliques et tu me redis
a+
Papou
Bonjour et bienvenue sur le forum
Quelques questions :
* Est-ce que tu veux transposer une ligne quelconque ? Dans ce cas, où veux-tu le résultat ?
* Si tu veux transformer l'ensemble des lignes d'une feuille, où doit-on écrire le résultat de la 2° ligne, sur les 5 colonnes suivantes ou à la suite, à partir de la première ligne libre suivante ?
* Veux tu transposer d'un coup toutes les page ? ou à la demande ?
* Le résultat doit-il s'écrire sur une nouvelle feuille ou doit-il remplacer sur la même feuille les données initiales ?
A te relire.
Bye !
Bonjour,
J'ai voulu transposer chaque ligne de chaque feuille en 4 colonnes chacune. Et les résultats doivent apparaitre sur la même page.
Merci pour votre réponse et temps.
Problème résolu par le code fourni par Paritec que je le remercie vivement :
Sub traiter()
Dim sh As Worksheet, aa, bb, i&, a&, n&
Application.ScreenUpdating = 0
For Each sh In Worksheets
aa = sh.Range("A4:U" & sh.Range("A" & Rows.Count).End(xlUp).Row)
ReDim bb(1 To UBound(aa) * (UBound(aa, 2) - 2), 1 To 4): n = 1
For i = 2 To UBound(aa)
For a = 3 To UBound(aa, 2)
bb(n, 1) = aa(i, 1): bb(n, 2) = aa(i, 2): bb(n, 3) = aa(1, a): bb(n, 4) = aa(i, a): n = n + 1
Next a
Next i
Sheets.Add after:=Sheets(Sheets.Count): ActiveSheet.Name = "_" & sh.Name
ActiveSheet.Range("A1").Resize(UBound(bb), UBound(bb, 2)) = bb
Next sh
End Sub
Bonjour et bienvenue sur le forum
Quelques questions :
* Est-ce que tu veux transposer une ligne quelconque ? Dans ce cas, où veux-tu le résultat ?
* Si tu veux transformer l'ensemble des lignes d'une feuille, où doit-on écrire le résultat de la 2° ligne, sur les 5 colonnes suivantes ou à la suite, à partir de la première ligne libre suivante ?
* Veux tu transposer d'un coup toutes les page ? ou à la demande ?
* Le résultat doit-il s'écrire sur une nouvelle feuille ou doit-il remplacer sur la même feuille les données initiales ?
A te relire.
Bye !