Extraire des données empilées

Bonjour à tous,

Je débute en VBA, et je coince depuis quelques jours sur un problème qui doit finalement être assez simple.

Je souhaite recopier des données qui se trouvent dans un onglet excel sous la forme :

- colonne A : référence de la pièce

- colonne B : étape de fabrication.

pour chaque référence, il est associé plusieurs étapes de fabrication (le nombre d'étapes diffère pour chaque pièce), ce qui donne un fichier de ce type :

Référence Etapes
A001EtapeA1
A001EtapeA2
A001EtapeA3
B001EtapeB1
B001EtapeB2
B001EtapeB3
B001EtapeB4
C001EtapeC1
C001EtapeC2

Je souhaiterai, extraire ces données, dans un nouvel onglet où sur la 1ère ligne j'aurai la référence de la pièce et en dessous les étapes de fabrication soit :

A001B001C001
EtapeA1EtapeB1EtapeC1
EtapeA2EtapeB2EtapeC2
EtapeA3EtapeB3
EtapeB4

Mon idée est donc de lire la 1ère colonne, et à chaque changement de valeurs, recopier la nouvelle valeurs dans une nouvelle colonne, puis de copier les étapes dessous.

J'ai réussi à faire la 1ère partie, mais je bloque sur la 2ème. actuellement ça me donne ça. où les étapes de fabrication de la 1ère référence ne sont pas inscrite, mais surtout je n'arrive pas à remonter les étapes suivantes pour quelles commencent toutes sur la 2ème ligne.

A001B001C001
EtapeB1
EtapeB2
EtapeB3
EtapeB4
EtapeC1
EtapeC2

Mon code est le suivant :

Sub Extract()

Worksheets("Extraction").Cells.Clear
Dim i As Long, Ref As String, j As Long, k As Long

    Ref = Sheets("datas").Cells(1, 2).Value
    j = 1

        With Sheets("datas")
        For i = 2 To 5000

            If .Cells(i, 2).Value <> Ref Then
                Ref = .Cells(i, 2).Value
                .Cells(i, 2).Copy Worksheets("Extraction").Cells(1, j)
                j = j + 1
            End If

           k = Cells(i, 2).Row
           If .Cells(i, 2).Value = Ref Then

                .Cells(i, 1).Copy Worksheets("Extraction").Cells(k, j)
           End If

        Next i
    End With
End Sub

Merci d'avance pour votre aide !!!

Bonjour,

Pour ce genre de chose, laisser tomber le VBA et opter pour Power query. Avec un fichier exemple ça se fait en 2/3 clicks

Merci pour le retour Valentin85, c'est la première fois que j'entends parler de cet outil. Je regarde comment m'en servir!

Bonjour à tous,

Et avec les fonctionnalités Excel 365 et + :

9enea-v0.xlsx (11.89 Ko)

Bonjour @JFL,

Tu aurais une idée de comment le faire en PQ. J'ai parler un peu trop vite et je suis incapable de le faire pourtant ça me parait pas sorcier.

EDIT : Okay j'ai réussi finalement.

5essai-pq.xlsx (17.73 Ko)

Cdt

Bonjour de nouveau,

Bonjour @JFL,

Tu aurais une idée de comment le faire en PQ. J'ai parler un peu trop vite et je suis incapable de le faire pourtant ça me parait pas sorcier.

Cdt

Une proposition :

7enea-v0.xlsx (20.20 Ko)

De nouveau,

Merci. Chris , Jean-eric et toi même êtes de véritables mines d'ors pour PQ.

Effectivement ça doit être super simple vu ta réponse plus que rapide JFL, mais là je suis perdue.

Peux tu détailler un peu comment tu as fait ? s'il te plait ?

Oui Excuse moi.

Power query est un outil de transformation de base de données.(Totalement intégré à excel depuis Excel 2016)

Pour cela tu dois mettres tes données sous forme de tableau structuré : Onlget "Insertion" => "Tableau"

Puis rennomer le tableau "T_Data"

Ensuite pour faire fonctionner la requête il te suffira de faire : Onglet "données" => "Actualisées tout".

Pour voir les requettes : Onglet "données" => "Requetes et connexion" . Les requetes sont affcihes à droite et il te suffit de double clicker dessus pour voir les étapes de transformations.

Cdt

Bonjour de nouveau,

De nouveau,

Merci. Chris , Jean-eric et toi même êtes de véritables mines d'ors pour PQ.

C'est fort aimable à vous ! Cependant je ne me sens pas légitime à figurer dans ce trio. L'écart de compétences est abyssal.....

Désolée pour ma réponse pas rapide, j'ai du prendre une réunion au milieu, et après je me suis un peu débattue avec mon fichier Excel qui est un peu trop lourd pour mon PC.

Merci beaucoup pour vos réponses. j'ai enfin réussi à faire ce que je voulais.

Il faut que j'approfondisse mes compétences en power query qui a l'air vraiment intéressant mais que je ne connaissais pas du tout.

Je vous souhaite une excellente fin de journée et surtout un très bon week end

Bonjour de nouveau,

Merci de ce retour....

Approfondissez... approfondissez !

Rechercher des sujets similaires à "extraire donnees empilees"