Transformer des lignes-colonnes en tableaux

Bonjour,

je cherche à faire de façon assez automatique la transformation suivante :

nom dat1 dat2 travail

ann 19-déc 19-déc 4h

ann 20-déc 22-déc 12h

paul 18-déc 18-déc 3h

oli 18-déc 25-déc 34h

vers :

nom 18-déc 19-déc 20-déc 21-déc 22-déc 23-déc

ann x x x x

paul x x

oli x x x x x x

avec x= valeur travail gloable sur la période (pas de découpage selon les dates).

Merci beaucoup.

Salut le forum

Bienvenue comme nouveau membres Scoubid12

Un fichier serait plus facilement comprenable, avec la base et le résultat souhaité

Tu n'as qu'à cliquer sur ce lien : Joindre un fichier pour que l'on puisse t'aider, et recopier l'adresse sur ta ficelle.

Mytå

en effet, voici le fichier xls:

1er onglet ce que j'ai comme informations

2ème onglet ce que je rêve d'avoir :

https://www.excel-pratique.com/~files/doc/etvoila.xls

Bonjour,

Euh, tes dates dans ton onglet "cible", ne correspondent pas trop à tes données dans l'onglet "origine".......

Exemple : comment as-tu trouvé Christelle M. le 23/10/08........

Donc, pas facile de trouver ta logique

Oui, je comprends,

voici le fichier de nouveau complété avec la cible faite pour 2 des ressources " Equipe Projet" et "Annick M."

merci beaucoup

https://www.excel-pratique.com/~files/doc/Fh7JGetvoila.xls

Re-,

regarde le fichier joint, et clique sur le rectangle, dans l'onglet origine

le code :

Sub transpose()
Dim LesNoms As Object, Cel As Range
Dim Lig As Long, Col1 As Integer, Col2 As Integer
Set LesNoms = CreateObject("Scripting.Dictionary")
For Each Cel In Range("A2:A" & [A65000].End(xlUp).Row)
    If Not LesNoms.Exists(Cel.Value) Then LesNoms.Add Cel.Value, Cel.Value
Next Cel
With Sheets("cible")
    .Range("A2:CZ100").ClearContents
    .Range("A2:A" & LesNoms.Count + 1).Value = Application.transpose(LesNoms.items)
For Each Cel In Range("A2:A" & [A65000].End(xlUp).Row)
    Lig = Application.Match(Cel, .Range("A1:A" & .[A65000].End(xlUp).Row), 0)
    Col1 = CDate(Format(Cel.Offset(0, 2), "dd/mm/yyyy")) - .[B1] + 2
    Col2 = CDate(Format(Cel.Offset(0, 3), "dd/mm/yyyy")) - .[B1] + 2
    If Col1 = Col2 Then
        .Cells(Lig, Col1).Value = "Début : " & Format(Cel.Offset(0, 2), "hh:mm") _
            & " - Fin : " & Format(Cel.Offset(0, 3), "hh:mm")
    Else
        .Cells(Lig, Col1).Value = "Début : " & Format(Cel.Offset(0, 2), "hh:mm")
        If Col2 - Col1 > 1 Then _
            .Cells(Lig, Col1).Offset(0, 1).Resize(1, Col2 - Col1 - 1).Value = 1
        .Cells(Lig, Col2).Value = "Fin : " & Format(Cel.Offset(0, 3), "hh:mm")
    End If
Next Cel
.Cells.EntireColumn.AutoFit
End With
End Sub

le fichier :

https://www.excel-pratique.com/~files/doc/Copie_de_Fh7JGetvoila.zip

je suis ravie !!!!!

merci beaucoup

Rechercher des sujets similaires à "transformer lignes colonnes tableaux"