transposition lignes colonnes ...

  • Initiateur de la discussion Initiateur de la discussion Eymeric
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Eymeric

Guest
Bonjour,
voila, en fait j'ai de lignes :10, allant de A à L, et je souhaiterais transposer toutes ces lignes en une seule colonne. J'ai testé la fonction 'transposer' mais je ne parviens qu'à transposer la première cellule !!

Merci pour votre aide
[file name=exemple_20050630143157.zip size=1456]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_20050630143157.zip[/file]
 

Pièces jointes

Salut Eymeric,

En réalité tu as 10 colonnes dont la première (A) est vide, et 6 lignes dont la première est également vide (1).

Dans quel ordre veux-tu les transposer en une seule colonne : A1 à A6, puis B1 à B6, ... ou A1 àL1, puis A2 à L2, ...
Dans quelle colonne et à partir de quelle ligne ?

Dans les deux cas, une seule formule suffit, à moins que tu ne veuilles le faire par macro ?

Ândré.
 
Bonjour,

pour ton pb, je ta fais un petit fichier avec un userform adéquat,
j'sepère que cela pourra t'aider

A+

DSA [file name=Rep.zip size=14133]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Rep.zip[/file]
 

Pièces jointes

Ok, mais c'est trop compliquer pour moi... 😱

Si je veux transmettre ça à un ami, comment je fais ?

merci


et par curiosité, pourquoi la fonction 'transposer' qu'ils proposent dans excel ne fonctionne-t-elle pas ?

Merci
 
Bonjour,

pour le transmettre le plus simple c'est de transmettre le fichier (ok c'est une lapalissade....).
Sinon, classqiuement une fonction de transposition transpose. En gros, si tu as des données en 3 colonnes et 5 lignes, la transposition te donnera 5 colonnes de 3lignes.... alors que tu avais besoin d'avoir toute les données en une colonnes.
La macro que je t'est proposé n'est pas la plus simple ms estétiquement c'était jolie (à mon humble avis).
Pour faire simple on aurait pu faire:
Code:
Sub Transpose1Colonne()
Dim i, j, k, l As Integer
'Ligne ou tu veux l'ensemble de tes données
k = 8
'pour la ligne 1 à 2
For i = 1 To 2
    'pour la colonne 1 à 2
    For j = 1 To 2
        Cells(k, 1) = Cells(i, j)
        k = k + 1
    Next
Next
End Sub

J'espère que c'est un peu plus simple......

A+

DSA
 
Re : Re:transposition lignes colonnes ...

Bonjour
J'ai besoin de transposer des données de colonnes en lignes mais c'est pas le même exemple du Monsieur la haut.

J'ai crée une macro dans excel 2007 mais s'est avérée qu'elle ne convient pas à ce que je dois avoir.

mon tableau est de la forme suivante;

A1 aa
A2 bb
A3 cc
A4 dd
A5 ee
A6
A7
A8
A9
A10 ff
A11 gg
A12 hh
A13 ii
A14 jj
A15
A16
A17
A18
A19
A20 ll
A21 mm
A22 nn
A23 oo
A24 pp
A25
A26
A27
ETC

Mon objectif est d'automatiser la transposition de la seule colonne que j'ai en ligne qui commence à partir de la première cellule de la colonne.
Par exemple je veux le nouveau tableau suivant:

A1 B1 C1 D1 E1 F1 G1 I1
aa bb cc dd ee
ff gg hh ii jj
ll mm nn oo pp

Merci pour votre assistance
🙂
 
Re : transposition lignes colonnes ...

Bonjour Kana et bienvenue parmi nous,

je crois que tu as répondu sur un ancien post.... tu aurais dû créer un nouveau fil, enfin c'est ton premier post, à noter pour les prochains. Sinon regarde le code ci dessous, il doit répondre à ton besoin, enfin je crois.

Code:
Sub test()
Dim t
With Range("A1:A" & Range("A65536").End(xlUp).Row)
    t = .Value
    .ClearContents
End With
Range(Cells(1, 1), Cells(1, UBound(t))) = Application.Transpose(t)
End Sub

bonne journée
@+
 
Re : transposition lignes colonnes ...

Merci Pierrot.

il est à peu près ça sauf que les nouvelles lignes transposées ne doivent pas succéder toutes dans la même ligne mais être l'une sous l'autre. ça sera gentil si vous pouvez revoir le code

Merci infiniment et surtout pour la rapidité dans la réponse surtout que ça urge pour moi.

Bonjour Kana et bienvenue parmi nous,

je crois que tu as répondu sur un ancien post.... tu aurais dû créer un nouveau fil, enfin c'est ton premier post, à noter pour les prochains. Sinon regarde le code ci dessous, il doit répondre à ton besoin, enfin je crois.

Code:
Sub test()
Dim t
With Range("A1:A" & Range("A65536").End(xlUp).Row)
    t = .Value
    .ClearContents
End With
Range(Cells(1, 1), Cells(1, UBound(t))) = Application.Transpose(t)
End Sub

bonne journée
@+
 
Re : transposition lignes colonnes ...

Re

essaye comme ci dessous, si toujours sur 5 colonnes :

Code:
Sub test()
Dim t, i As Integer, ii As Byte, j As Integer
With Range("A1:A" & Range("A65536").End(xlUp).Row)
    t = .Value
    .ClearContents
End With
i = 1: ii = 1: j = 1
Do While j <= UBound(t, 1)
    Cells(i, ii).Value = t(j, 1)
    j = j + 1
    If ii = 5 Then ii = 1: i = i + 1 Else ii = ii + 1
Loop
End Sub

bonne soirée
@+
 
Re : transposition lignes colonnes ...

Bonjour Kana

une autre solution qui ne tient pas compte des cellules vides :

Code:
Sub test()
Dim t(), p As Range, c As Range, i As Integer, ii As Byte, j As Integer
Set p = Range("A1:A" & Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeConstants)
i = 1
For Each c In p
    ReDim Preserve t(1 To i)
    t(i) = c.Value
    i = i + 1
Next c
p.ClearContents
i = 1: ii = 1: j = 1
Do While j <= UBound(t)
    Cells(i, ii).Value = t(j)
    j = j + 1
    If ii = 5 Then ii = 1: i = i + 1 Else ii = ii + 1
Loop
End Sub

bonne journée
@+
 
Re : transposition lignes colonnes ...

Bonsoir Pierrot

J'ai testé les deux codes, le premier est le plus proche de ce que je cherche en modifiant 5 par 9 parceque je veux avoir 10 colonnes et en supprimant les lignes vides entre chaque blocs de 10 lignes (qui contiennent les données et quelques fois des vides exprès)

Coment est ce qu'on peut ajouter du code à ce macro pour automatiser cette tâche de suppression?

Merci bcp pour votre assistance 🙂.

Cordialement
Nadia

Code:
Sub test()
Dim t, i As Integer, ii As Byte, j As Integer
With Range("A1:A" & Range("A65536").End(xlUp).Row)
    t = .Value
    .ClearContents
End With
i = 1: ii = 1: j = 1
Do While j <= UBound(t, 1)
    Cells(i, ii).Value = t(j, 1)
    j = j + 1
    If ii = 5 Then ii = 1: i = i + 1 Else ii = ii + 1
Loop
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
887
  • Question Question
Microsoft 365 Programme trop lent
Réponses
12
Affichages
1 K
Réponses
4
Affichages
1 K
A
Réponses
0
Affichages
898
A
A
Réponses
20
Affichages
2 K
Aurélie13008
A
J
Réponses
9
Affichages
3 K
joaoratao
J
W
Réponses
10
Affichages
2 K
Willam 76000
W
Retour