Transformer des données en colonnes en ligne

Bonjour à tous,

Je possède un fichier ou les données sont répertoriées par lignes. A chaque ligne correspond une heure, et des données par pas de 10 min sont enregistrées et affectées horizontalement.

Je souhaiterai avoir une macro qui me permettrait de convertir ces lignes en colonnes afin que je aligner verticalement toutes mes données.

Je joins un exemple illustrant mon problème.

Je vous remercie d'avance !

Bonjour,

j'ai adapté la structure de ton fichier exemple, j'ai également transformé tes heures de minutes secondes en heures minutes

une proposition

Sub aargh()
    Set ws = Sheets("resultat")
    With Sheets("feuil2")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        h = ""
        k = 2
        For i = 2 To dl
            If Hour(.Cells(i, 2)) <> h Then
                k = k + 1
                h = Hour(.Cells(i, 2))
            End If
            ws.Cells(k, 1) = .Cells(i, 1)
            ws.Cells(k, 2) = h
            m = 4 + Minute(.Cells(i, 2)) / 10
            ws.Cells(k, m) = .Cells(i, 4)
        Next i
    End With
End Sub

Bonjour h2so4

Je te remercie pour ta réponse, seulement je me suis mal exprimer, en fait je voudrai faire l'inverse de ce que tu m'as proposé. La configuration actuelle de mes données est telle que tu me l'as proposées dans l'onglet résultat. Je voudrais donc les transformer en données ligne par ligne.

je t'ai fait une petite description dans le fichier ci-joint

Je te remercie pour ta patience .

re-bonjour,

ton explication était claire, j'ai lu trop vite

une autre version

Re,

C'est excatement ce que je voulais, je te remercie pour ton aide et je vais à présent essayer de comprendre comment tu as fait !

Bonne journée !

re-bonjour,

code commenté

Sub aargh()
    Set ws = Sheets("source") 'feuille source
    With Sheets("resultat") 'feuille résultat
    .Rows("2:" & .UsedRange.Rows.Count).ClearContents 'efface contenu résultat
        dl = ws.Cells(Rows.Count, 1).End(xlUp).Row 'dernière ligne source
        k = 1 'première ligne résultat
        For i = 3 To dl 'on parcourt chaque ligne de la source
            For j = 4 To 9 'pour chaque ligne, on parcourt chaque colonne
                k = k + 1 'ligne où écrire le résultat
                .Cells(k, 1) = ws.Cells(i, 1) 'copie la date
                .Cells(k, 2) = Format(Hour(ws.Cells(i, 2)), "00") & ":" & Format(ws.Cells(2, j), "00") & ":00" ' on assemble l'heure
                .Cells(k, 4) = ws.Cells(i, j) 'on copie la valeur
            Next j
        Next i
    End With
End Sub
Rechercher des sujets similaires à "transformer donnees colonnes ligne"