Transposé des lignes en des colonnes

Bonjour, j'aurai besoin de transposé pour chaque référence la première ligne 'l'entête' et la ligne de référence" en deux colonnes

Pour mieux comprendre le besoin exacte merci de voir la pièce jointe ou vous trouverez sur le feuil 'résultat' une simulation sur les deux premiers références

Et merci d'avance

34classeur2.xlsx (231.20 Ko)

bonjour

un essai par formules (DECALER)

15benhaj.xlsx (253.89 Ko)

Bonsoir à tous,

Une proposition via Power Query (complément à télécharger pour votre version Excel - Nativement intégré dans les versions postérieures) :

13ben-haj-pq-v0.zip (888.71 Ko)

Bonsoir le fil, bonsoir le forum

Une autre proposition par VBA avec le code ci-dessous :

Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
Dim DL As Long 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)

Set OS = Worksheets("Feuil1") 'définit l'onglet source OS
Set OD = Worksheets("resultat") 'définit l'onglet destination OD
OD.Range("A1").CurrentRegion.ClearContents 'efface les anciennes valeurs de l'onglet destination
TV = OS.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 2 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
    Erase TL 'efface le tableau des lignes TL
    ReDim TL(1 To UBound(TV, 2), 1 To 3) 'redimensionne le tableau des lignes TL (autant de lignes que TV a de colonnes, 3 colonnes)
    For J = 1 To UBound(TV, 2) - 1 'boucle 2 : sur toutes les colonnes J du tabelau des valeurs TV moins 1
        TL(J, 1) = TV(I, 1) 'définit la donnée ligne J colonne 1 de TL (la référence)
        TL(J, 2) = TV(1, J + 1) 'définit la donnée ligne J colonne 2 de TL (l'en-tête)
        TL(J, 3) = TV(I, J + 1) 'définit la donnée ligne J colonne 3 de TL (la valeur)
    Next J 'prochaine colonne de la boucle 2
    'définit la dernière ligne éditée DL de la colonne A de l'onglet OD
    DL = IIf(OD.Range("A1").Value = "", 1, OD.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1)
    OD.Cells(DL, 1).Resize(UBound(TV, 2), 3).Value = TL 'renvoie le tableau TL dans la cellule ligne DL, colonne 1 redimensionnée de l'onglet OD
Next I 'prochaine ligne de la boucle 1
MsgBox "Données traitées !" 'message
End Sub

Je crois que tu as la totale là !...

Bonsoir de nouveau,

Je crois que tu as la totale là !...

C'est beau le luxe..... non ?

Rechercher des sujets similaires à "transpose lignes colonnes"