Macro copier coller valeurs avec cellule à valeur variable

bonjour

Je cherche une commande ou une macro qui peut reproduire le contenu d'une ligne autant de fois qu'une indication tels que "," est présente dans une cellule de cette ligne?

En fait c'est un tranpose mais plus complexe.

Exemple

Description Reference cote jour

Toile 23 230x210 1

nappe 24, 25 225x214 2

mouchoir 26, 27, 28 251 3

Résultat attendu

Description Reference cote jour

Toile 23 230x210 1

nappe 24 225x214 2

nappe 25 225x215 2

mouchoir 26 251 3

mouchoir 27 251 3

mouchoir 28 251 3

Merci par avance

Bonjour,

Il va de soi qu'une solution générique n'existe pas ... donc sans ton fichier avec ta structure ... pour savoir, par exemple, si chaque donnée est bien dans sa propre cellule ( ou pas ...) ... difficile de faire une proposition utile ...

Voir joint le fichier que j'ai pour supporter cet exemple.

Merci pour votre support

Didier


Voir joint le fichier que j'ai pour supporter cet exemple.

Merci pour votre support

Didier

9classeur2.xlsx (9.89 Ko)
16classeur2.xlsx (9.89 Ko)

bonjour ,

une proposition de solution qui fait l'hypothèse que les données sont dans les colonnes a,b,c et d

Sub test()
    Set wss = Worksheets("source") 'feuille avec les données de base
    Set wsr = Worksheets("résultats") 'feuille résultats
    dl = wss.Cells(Rows.Count, 1).End(xlUp).Row
    l = 0
    For i = 1 To dl

        el = wss.Cells(i, 2)
        v = InStr(el, ",")
        While v <> 0
            l = l + 1
            wsr.Cells(l, 1) = wss.Cells(i, 1)
            wsr.Cells(l, 3) = wss.Cells(i, 3)
            wsr.Cells(l, 4) = wss.Cells(i, 4)
            wsr.Cells(l, 2) = Left(el, v - 1)
            el = Mid(el, v + 1)
            v = InStr(el, ",")
        Wend
        l = l + 1
        wsr.Cells(l, 1) = wss.Cells(i, 1)
        wsr.Cells(l, 3) = wss.Cells(i, 3)
        wsr.Cells(l, 4) = wss.Cells(i, 4)
        wsr.Cells(l, 2) = el
    Next i
End Sub
31ditou.xlsm (15.40 Ko)

En premier merci pour le fichier joint qui fonctionne et pour votre support.

J'ai refait un test avec un autre fichier et ce contenu mais je n'ai pas réussi le travail, bien que la problématique soit identique. Je pense qu'il s'agit du fait de la position ou "," est positionné?

Puis je vous le confier?

12classeur2a.zip (12.13 Ko)

re-bonjour,

comme quoi rien ne vaut un fichier.

proposition de correction. Une feuille est ajoutée pour le résultat.

Sub test()
    Set wss = Worksheets("feuil4") 'feuille avec les données de base
   Set wsr = Worksheets.Add 'feuille résultats
   dl = wss.Cells(Rows.Count, 1).End(xlUp).Row
    l = 0
    For i = 1 To dl

        el = wss.Cells(i, 2)
        v = InStr(el, ",")
        While v <> 0
            l = l + 1
            wss.Rows(i).Copy wsr.Cells(l, 1)
            wsr.Cells(l, 2) = Left(el, v - 1)
            el = Mid(el, v + 1)
            v = InStr(el, ",")
        Wend
 l = l + 1
            wss.Rows(i).Copy wsr.Cells(l, 1)
        wsr.Cells(l, 2) = el
    Next i
End Sub
29classeur2a.zip (10.32 Ko)

Bonjour h2so4,

Je confirme que tu as réussi!! Mais j'ai fait une modification pour la finaliser. Néanmoins sans toi je serai encore comme les légumes dans la soupe!!

Merci pour ton support et c'est bien la première fois que j'ai une réponse utile à un forum. Je suis encouragé à continuer grâce à toi.

Rechercher des sujets similaires à "macro copier coller valeurs valeur variable"