Fonction permettant de modifier la structure de données

Bonjour, j'ai une nouvelle fois besoin de votre aide !

j'aimerais si possible, trouver un code ou une fonction permettant de réaliser l'opération suivante :

Dans la colonne A de la feuille 1, j'ai les informations suivantes :

  • A-B-C-D
  • H-I-J-K
  • ect...

Dans la feuile 2, j'aimerais avoir automatiquement les informations en lien avec cette colonne, mais sous la forme suivante :

  • A-B
  • B-C
  • C-D
  • H-I
  • I-J
  • J-K
  • ect...

Je sais que c'est assez spécial, mais c'est critique dans la réalisation de mon travail.

Merci d'avance et bonne journée !

Bonjour,

une solution via une macro (la macro suppose les données dans l'onglet "sheet1")

Sub aargh()
    With Sheets("sheet1") '<- à adapter
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        t = .Cells(1, 1).Resize(dl, 1)
    End With
    With Sheets.Add
        For i = 1 To dl
            el = Split(t(i, 1), "-")
            For j = 0 To UBound(el) - 1
                lg = lg + 1
                .Cells(lg, 1) = el(j) & "-" & el(j + 1)
            Next j
        Next i
    End With
End Sub

Wouah, c'est juste génial, je ne savais pas qu'on pouvait faire ce genre de chose !!

Est-ce que je peux encore profiter de ta gentillesse avec un exercice du même type ? C'est pour full automatiser le traitement de mes données. Comme exemple :

Voici les données que j'ai en feuille 1 :

1

Voici les données que j'aimerais en resortir en feuille 2 :

2

Même chose, je suis disponible si tu as des questions !

Un tout grand merci

bonjour,

voici le code adapté. La prochaine fois, merci de mettre un fichier, plutôt que des photos dont on ne peut rien faire.

Sub aargh()
    With Sheets("sheet1")    '<- à adapter
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        dl = dl - 1
        t = .Cells(2, 1).Resize(dl, 2)
    End With
    With Sheets.Add
        .Cells(1, 1).Resize(1, 3) = Split("col 1,col 2, col 3", ",")
        lg = 1
        For i = 1 To dl
            el = Split(t(i, 2), "-")
            For j = 0 To UBound(el) - 1
                lg = lg + 1
                .Cells(lg, 1) = t(i, 1)
                .Cells(lg, 2) = t(i, 2)
                .Cells(lg, 3) = el(j) & "-" & el(j + 1)
            Next j
        Next i
    End With
End Sub

D'accord, je n'y manquerai pas la prochaine fois.

Merci beaucoup et bonne fin de journée !

Rechercher des sujets similaires à "fonction permettant modifier structure donnees"