Transposer ou trasformer ligne en colonne

  • Initiateur de la discussion Initiateur de la discussion modjoo
  • 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 !

M

modjoo

Guest
Bonjour à tous,

Je vous demande de l'aide concernant la transformation de ligne en colonne mais pas dans n'importe quel sens.
Je pense que plutôt que perdre du temps dans une longue explication, mieux vaut un petit tableau avec des couleurs (schéma).
Le but est donc de générer autant de ligne que de "couple qté/prix" (voir exemple)


PS : je sais que vis à vis de la charte du forum, il faut se présenter, je le ferai, c'est promis donc mille excuses à l'admin du fofo 😛
 

Pièces jointes

Re : Transposer ou trasformer ligne en colonne

Bonjour, et bienvenue sur Xld

regarde le fichier joint, clique sur le rectangle rouge, et ce que tu désires est copié dans la feuille 2

le code :

Code:
Sub transpose()
Dim Cel As Range, I As Byte, DerLig As Long
For Each Cel In Range("A2:A" & [A65000].End(xlUp).Row)
    With Sheets("Feuil2")
        For I = 9 To 27 Step 2
            DerLig = .[A65000].End(xlUp).Row + 1
            .Cells(DerLig, 1).Resize(1, 8).Value = Cells(Cel.Row, 1).Resize(1, 8).Value
            .Cells(DerLig, 9).Resize(1, 2).Value = Cells(Cel.Row, I).Resize(1, 2).Value
        Next I
    End With
Next Cel
End Sub

le fichier :
 

Pièces jointes

Re : Transposer ou trasformer ligne en colonne

Bonjour,

Au cas où une formule (deux en fait) te conviendrait pour faire ta transposition spéciale voici :

pour la quantité (en I13) :
=DECALER($A$1;ENT((LIGNE()-13)/10)+1;8+2*MOD(LIGNE()-13;10))
et pour le prix en J13
=DECALER($A$1;ENT((LIGNE()-13)/10)+1;9+2*MOD(LIGNE()-13;10))

A recopier vers le bas et à figer par un copier/coller_spécial si nécessaire.

Cordialement
 
Re : Transposer ou trasformer ligne en colonne

Merci à vous deux !

Ta macro, bhbh, fonctionne du feu de dieu ! 😉
en revanche, j'ai ma première colonne qui comporte des codifications articles un peu délirantes du style 00070 qui deviennent dans l'onglet "Feuil2" -> 70.
Puis-je garder le même format ?

Merci à toi ODVJ pour ta formule que je compte bien décortiquer.

Et merci encore pour votre rapidité 😀
 
Re : Transposer ou trasformer ligne en colonne

Re-,

si c'est seulement pour la première colonne, remplace le code par celui-ci :

Code:
Sub transpose()
Application.ScreenUpdating = False
Dim Cel As Range, I As Byte, DerLig As Long
For Each Cel In Range("A2:A" & [A65000].End(xlUp).Row)
    With Sheets("Feuil2")
        For I = 9 To 27 Step 2
            DerLig = .[A65000].End(xlUp).Row + 1
            Cells(Cel.Row, 1).Copy
            .Cells(DerLig, 1).PasteSpecial xlPasteValues
            .Cells(DerLig, 2).Resize(1, 7).Value = Cells(Cel.Row, 2).Resize(1, 7).Value
            .Cells(DerLig, 9).Resize(1, 2).Value = Cells(Cel.Row, I).Resize(1, 2).Value
        Next I
    End With
Next Cel
Application.CutCopyMode = False
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

J
Réponses
3
Affichages
659
J
E
Réponses
6
Affichages
1 K
Enavant80
E
D
Réponses
4
Affichages
1 K
Disiz4K
D
E
Réponses
12
Affichages
2 K
J
Réponses
9
Affichages
3 K
joaoratao
J
M
Réponses
13
Affichages
6 K
M
S
Réponses
0
Affichages
906
Street filou
S
P
Réponses
5
Affichages
1 K
Potiron23
P
M
Réponses
15
Affichages
2 K
M
A
Réponses
4
Affichages
3 K
azerty1956
A
Retour