Transposer des éléments

ariol

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je tente de trouver le bon procéder pour solutionner mon petit problème.
Sans succès jusqu'à maintenant d'où ma demande d'aide.

Mon problème consiste à trouver le moyen de recopier sur la même ligne, les éléments appartenant à un même éléments.
Un exemple pour être précis :

Tableau actuel
CLIENT | CODE1 |CODE2 |CODE3 |
Client_A | AAA | BBB |CCC |
Client_A | DDD | EEE |FFF |
Client_B | GGG | HHH |IIII |
Client_B | JJJJJ | KKK |LLL |


Tableau Souhaité
CLIENT | CODE1 |CODE2 |CODE3 |CODE1 |CODE2 |CODE3
Client_A | AAA | BBB |CCC |DDD | EEE |FFF |
Client_B | GGG | HHH |IIII JJJJJ | KKK |LLL |


Merci pour votre aide
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Transposer des éléments

Bonsoir,

Juste pour faire avancer le schmilblick...

1. Si tu avais un petit bout de fichier ce serait top
2. Est ce que le rythme est aussi régulier que celui ci (deux lignes, trois cellules) ?

Merci à toi de nous aider à te répondre.
 

ariol

XLDnaute Nouveau
Re : Transposer des éléments

Bonsoir, merci pour cette première réponse.
Non, Les séquences ne sont pas toutes identiques.
Voici un extrait du fichier concerné.
Merci encore pour l'aide apportée.
 

Pièces jointes

  • transpose.xls
    9.5 KB · Affichages: 67
  • transpose.xls
    9.5 KB · Affichages: 70
  • transpose.xls
    9.5 KB · Affichages: 65
Dernière édition:

mécano41

XLDnaute Accro
Re : Transposer des éléments

Bonjour,

Dans la recopie sur une même ligne, la séquence "Equipement_No_CFS" , "Acheté" , "Garantie" se répète-t-elle systématiquement et dans ce cas il peut donc y avoir un "vide" si, comme dans ton exemple, il n'y a rien dans "Garantie" ou bien doit-on "tasser" vers la gauche et écrire à la suite sans trou? (dans ce cas, auras-tu un signe distinctif te permettant de reconnaître un code "Acheté" d'un code "Garantie" pour récupérer tes données ultérieurement?)


Cordialement
 

Tibo

XLDnaute Barbatruc
Re : Transposer des éléments

Bonjour ariol, salut mécano,

Un essai par formules matricielles (les formules sont issues et adaptées d'un célèbre classeur de nos amies Monique et Celeda.

Je joins le fichier

et te laisse découvrir et tester

@+
 

Pièces jointes

  • ariol.zip
    5.5 KB · Affichages: 34

mécano41

XLDnaute Accro
Re : Transposer des éléments

Salut Tibo,

Ce n'est pas du tout ce que j'ai compris....:(

J'ai compris que, s'il y avait plusieurs lignes comportant le même N° de client, il fallait garder la première et lui ajouter, dans des cellules placées à droite (nb variable de 1 à 3) et sur la même ligne, les valeurs figurant dans les lignes suivantes (lignes que l'on fait ensuite disparaître)... c'est ce que je suis en train de faire en VBA...mais ce n'est peut-être pas cela...:D

Cordialement
 

ariol

XLDnaute Nouveau
Re : Transposer des éléments

Salut Tibo,

Ce n'est pas du tout ce que j'ai compris....:(

J'ai compris que, s'il y avait plusieurs lignes comportant le même N° de client, il fallait garder la première et lui ajouter, dans des cellules placées à droite (nb variable de 1 à 3) et sur la même ligne, les valeurs figurant dans les lignes suivantes (lignes que l'on fait ensuite disparaître)... c'est ce que je suis en train de faire en VBA...mais ce n'est peut-être pas cela...:D

Cordialement

si mécano41, c'est tout à fait cela.

A la limite, il ne faut pas faire disparaitre le premier tableau, il suffit de générer un nouveau .

merci encore, j'essaie de trouver aussi de mon côté mais cela fait deux jours que je suis dessus sans succés.
 

Tibo

XLDnaute Barbatruc
Re : Transposer des éléments

rere,

Après relecture du fil, une autre approche :

Sur la base du fichier que j'ai proposé plus haut, en I2, cette formule matricielle :

Code:
=SI(NB.SI($A$2:$A$41;$G2)>ENT((COLONNE()-12)/3)+1;INDEX(DECALER($B$1;0;
EQUIV(I$1;$C$1:$E$1;0);50);PETITE.VALEUR(SI(($A$2:$A$41=$G2)*LIGNE($A$2:$A$41)>0;
($A$2:$A$41=$G2)*LIGNE($A$2:$A$41));ENT((COLONNE()-12)/3)+2));"")

A valider par CTRL + MAJ + ENTREE

et à recopier vers le bas et vers la droite

Voir le fichier joint.

@+
 

Pièces jointes

  • ariol_2.zip
    15 KB · Affichages: 36

ariol

XLDnaute Nouveau
Re : Transposer des éléments

Super mécano41,
c'est tout à fait ça.

Moi de mon côté j'ai trouvé ce topic :
https://www.excel-downloads.com/thr...yant-toutes-les-valeurs-dune-variable.106702/

Ou porcinet82 propose pour un problème similaire ce code :
Sub test()
Dim k%, der_lig%
Dim tempo$
For k = 1 To Range("A65536").End(xlUp).Row
der_lig = Range("E65536").End(xlUp).Row + 1
If Cells(k, 1).Value = Cells(k + 1, 1).Value Then
If tempo = "" Then
tempo = Cells(k, 2).Value
Else
tempo = tempo & ", " & Cells(k, 2).Value
End If
Else
If tempo = "" Then
tempo = Cells(k, 2).Value
Else
tempo = tempo & ", " & Cells(k, 2).Value
End If
Cells(der_lig, 5).Value = Cells(k, 1).Value
Cells(der_lig, 6).Value = tempo
tempo = ""
End If
Next k
End Sub

Mais je perd un temps fou à l'adapter pour mon problème car j'ai plusieurs lignes avec plusieurs colonnes :(
 

Statistiques des forums

Discussions
312 492
Messages
2 088 931
Membres
103 984
dernier inscrit
maliko67